@@ -24,11 +24,9 @@ using StorageOrders
24
24
import .. increment, .. increment!, .. decrement, .. decrement!
25
25
26
26
using SuiteSparse. UMFPACK
27
- using SuiteSparse. UMFPACK: umferror, @isok ,
28
- UMFVTypes,
29
- show_umf_ctrl, show_umf_info
30
- import SuiteSparse. UMFPACK: umfpack_numeric!, _AqldivB_kernel!, umfpack_extract, umfpack_symbolic!,
31
- _Aq_ldiv_B!, solve!, umf_lunz
27
+ using SuiteSparse. UMFPACK: umferror, @isok , UMFVTypes, show_umf_ctrl, show_umf_info
28
+ import SuiteSparse. UMFPACK: umfpack_numeric!, _AqldivB_kernel!,
29
+ umfpack_extract, umfpack_symbolic!, _Aq_ldiv_B!, solve!, umf_lunz
32
30
using SuiteSparse. LibSuiteSparse
33
31
import SuiteSparse. LibSuiteSparse:
34
32
SuiteSparse_long,
@@ -88,7 +86,6 @@ import SuiteSparse.LibSuiteSparse:
88
86
UMFPACK_ERROR_file_IO,
89
87
UMFPACK_ERROR_ordering_failed
90
88
91
-
92
89
const JL_UMFPACK_PRL = UMFPACK_PRL + 1
93
90
const JL_UMFPACK_DENSE_ROW = UMFPACK_DENSE_ROW + 1
94
91
const JL_UMFPACK_DENSE_COL = UMFPACK_DENSE_COL + 1
@@ -479,10 +476,10 @@ get_num_z = Symbol(umf_name("get_numeric", :ComplexF64))
479
476
n = lu. n
480
477
ctrl = lu. control
481
478
info = lu. info
482
- res = $ sym_r (m, n, colptr, rowval, nzval, tmp, ctrl, info)
479
+ res = LibSuiteSparse. $ sym_r (m, n, colptr, rowval, nzval, tmp, ctrl, info)
483
480
else
484
481
qq = minimum (q) == 1 ? q .- one (eltype (q)) : q
485
- res = $ symq_r (lu. m, lu. n, colptr, rowval, nzval, qq, tmp, lu. control, lu. info)
482
+ res = LibSuiteSparse. $ symq_r (lu. m, lu. n, colptr, rowval, nzval, qq, tmp, lu. control, lu. info)
486
483
end
487
484
repack! ()
488
485
@isok res
@@ -501,11 +498,11 @@ get_num_z = Symbol(umf_name("get_numeric", :ComplexF64))
501
498
# TODO : Relax ColMajor restriction, and enable transpose tricks
502
499
colptr, rowval, nzval, repack! = tempunpack! (lu. A, Sparse (); order = ColMajor ())
503
500
if q === nothing
504
- res = $ sym_c (lu. m, lu. n, colptr, rowval, real (nzval), imag (nzval), tmp,
501
+ res = LibSuiteSparse. $ sym_c (lu. m, lu. n, colptr, rowval, real (nzval), imag (nzval), tmp,
505
502
lu. control, lu. info)
506
503
else
507
504
qq = minimum (q) == 1 ? q .- one (eltype (q)) : q
508
- res = $ symq_c (lu. m, lu. n, colptr, rowval, real (nzval), imag (nzval), qq, tmp, lu. control, lu. info)
505
+ res = LibSuiteSparse. $ symq_c (lu. m, lu. n, colptr, rowval, real (nzval), imag (nzval), qq, tmp, lu. control, lu. info)
509
506
end
510
507
repack! ()
511
508
@isok res
@@ -526,7 +523,7 @@ get_num_z = Symbol(umf_name("get_numeric", :ComplexF64))
526
523
tmp = Ref {Ptr{Cvoid}} (C_NULL )
527
524
# TODO : Relax ColMajor restriction, and enable transpose tricks
528
525
colptr, rowval, nzval, repack! = tempunpack! (lu. A, Sparse (); order = ColMajor ())
529
- status = $ num_r (colptr, rowval, nzval, lu. symbolic, tmp, lu. control, lu. info)
526
+ status = LibSuiteSparse. $ num_r (colptr, rowval, nzval, lu. symbolic, tmp, lu. control, lu. info)
530
527
repack! ()
531
528
lu. status = status
532
529
if status != UMFPACK_WARNING_singular_matrix
@@ -547,7 +544,7 @@ get_num_z = Symbol(umf_name("get_numeric", :ComplexF64))
547
544
tmp = Ref {Ptr{Cvoid}} (C_NULL )
548
545
# TODO : Relax ColMajor restriction, and enable transpose tricks
549
546
colptr, rowval, nzval, repack! = tempunpack! (lu. A, Sparse (); order = ColMajor ())
550
- status = $ num_c (colptr, rowval, real (nzval), imag (nzval), lu. symbolic, tmp,
547
+ status = LibSuiteSparse. $ num_c (colptr, rowval, real (nzval), imag (nzval), lu. symbolic, tmp,
551
548
lu. control, lu. info)
552
549
repack! ()
553
550
lu. status = status
@@ -577,7 +574,7 @@ get_num_z = Symbol(umf_name("get_numeric", :ComplexF64))
577
574
umfpack_numeric! (lu)
578
575
(size (b, 1 ) == lu. m) && (size (b) == size (x)) || throw (DimensionMismatch ())
579
576
colptr, rowval, nzval, repack! = tempunpack! (lu. A, Sparse (); order = storageorder (lu. A))
580
- res = $ wsol_r (typ, colptr, rowval, nzval,
577
+ res = LibSuiteSparse. $ wsol_r (typ, colptr, rowval, nzval,
581
578
x, b, lu. numeric, lu. control,
582
579
lu. info, workspace. Wi, workspace. W)
583
580
repack! ()
@@ -604,7 +601,7 @@ get_num_z = Symbol(umf_name("get_numeric", :ComplexF64))
604
601
umfpack_numeric! (lu)
605
602
(size (b, 1 ) == lu. m) && (size (b) == size (x)) || throw (DimensionMismatch ())
606
603
colptr, rowval, nzval, repack! = tempunpack! (lu. A, Sparse (); order = storageorder (lu. A))
607
- res = $ wsol_c (typ, colptr, rowval, nzval, C_NULL , x, C_NULL , b,
604
+ res = LibSuiteSparse. $ wsol_c (typ, colptr, rowval, nzval, C_NULL , x, C_NULL , b,
608
605
C_NULL , lu. numeric, lu. control, lu. info, workspace. Wi, workspace. W)
609
606
repack! ()
610
607
@isok res
@@ -613,13 +610,13 @@ get_num_z = Symbol(umf_name("get_numeric", :ComplexF64))
613
610
end
614
611
function det (lu:: GBUmfpackLU{Float64} )
615
612
mx = Ref {Float64} (zero (Float64))
616
- @lock lu @isok ($ det_r (mx, C_NULL , lu. numeric, lu. info))
613
+ @lock lu @isok (LibSuiteSparse. $ det_r (mx, C_NULL , lu. numeric, lu. info))
617
614
mx[]
618
615
end
619
616
function det (lu:: GBUmfpackLU{ComplexF64} )
620
617
mx = Ref {Float64} (zero (Float64))
621
618
mz = Ref {Float64} (zero (Float64))
622
- @lock lu @isok ($ det_z (mx, mz, C_NULL , lu. numeric, lu. info))
619
+ @lock lu @isok (LibSuiteSparse. $ det_z (mx, mz, C_NULL , lu. numeric, lu. info))
623
620
complex (mx[], mz[])
624
621
end
625
622
# function logabsdet(F::GBUmfpackLU{T}) where {T<:Union{Float64,ComplexF64}} # return log(abs(det)) and sign(det)
@@ -645,7 +642,7 @@ get_num_z = Symbol(umf_name("get_numeric", :ComplexF64))
645
642
n_row = Ref {Int64} (zero (Int64))
646
643
n_col = Ref {Int64} (zero (Int64))
647
644
nz_diag = Ref {Int64} (zero (Int64))
648
- @isok $ lunz_r (lnz, unz, n_row, n_col, nz_diag, lu. numeric)
645
+ @isok LibSuiteSparse. $ lunz_r (lnz, unz, n_row, n_col, nz_diag, lu. numeric)
649
646
(lnz[], unz[], n_row[], n_col[], nz_diag[])
650
647
end
651
648
function umf_lunz (lu:: GBUmfpackLU{ComplexF64} )
@@ -654,7 +651,7 @@ get_num_z = Symbol(umf_name("get_numeric", :ComplexF64))
654
651
n_row = Ref {Int64} (zero (Int64))
655
652
n_col = Ref {Int64} (zero (Int64))
656
653
nz_diag = Ref {Int64} (zero (Int64))
657
- @isok $ lunz_z (lnz, unz, n_row, n_col, nz_diag, lu. numeric)
654
+ @isok LibSuiteSparse. $ lunz_z (lnz, unz, n_row, n_col, nz_diag, lu. numeric)
658
655
(lnz[], unz[], n_row[], n_col[], nz_diag[])
659
656
end
660
657
function getproperty (lu:: GBUmfpackLU{Float64} , d:: Symbol )
@@ -665,7 +662,7 @@ get_num_z = Symbol(umf_name("get_numeric", :ComplexF64))
665
662
Lj = unsafe_wrap (Array, _sizedjlmalloc (lnz, Int64), lnz)
666
663
Lx = unsafe_wrap (Array, _sizedjlmalloc (lnz, Float64), lnz)
667
664
# L is returned in CSR (compressed sparse row) format
668
- @isok $ get_num_r (
665
+ @isok LibSuiteSparse. $ get_num_r (
669
666
Lp, Lj, Lx,
670
667
C_NULL , C_NULL , C_NULL ,
671
668
C_NULL , C_NULL , C_NULL ,
@@ -678,7 +675,7 @@ get_num_z = Symbol(umf_name("get_numeric", :ComplexF64))
678
675
Up = unsafe_wrap (Array, _sizedjlmalloc (n_col + 1 , Int64), n_col + 1 )
679
676
Ui = unsafe_wrap (Array, _sizedjlmalloc (unz, Int64), unz)
680
677
Ux = unsafe_wrap (Array, _sizedjlmalloc (unz, Float64), unz)
681
- @isok $ get_num_r (
678
+ @isok LibSuiteSparse. $ get_num_r (
682
679
C_NULL , C_NULL , C_NULL ,
683
680
Up, Ui, Ux,
684
681
C_NULL , C_NULL , C_NULL ,
@@ -689,7 +686,7 @@ get_num_z = Symbol(umf_name("get_numeric", :ComplexF64))
689
686
umfpack_numeric! (lu) # ensure the numeric decomposition exists
690
687
(lnz, unz, n_row, n_col, nz_diag) = umf_lunz (lu)
691
688
P = unsafe_wrap (Array, _sizedjlmalloc (n_row, Int64), n_row)
692
- @isok $ get_num_r (
689
+ @isok LibSuiteSparse. $ get_num_r (
693
690
C_NULL , C_NULL , C_NULL ,
694
691
C_NULL , C_NULL , C_NULL ,
695
692
P, C_NULL , C_NULL ,
@@ -700,7 +697,7 @@ get_num_z = Symbol(umf_name("get_numeric", :ComplexF64))
700
697
umfpack_numeric! (lu) # ensure the numeric decomposition exists
701
698
(lnz, unz, n_row, n_col, nz_diag) = umf_lunz (lu)
702
699
Q = unsafe_wrap (Array, _sizedjlmalloc (n_col, Int64), n_col)
703
- @isok $ get_num_r (
700
+ @isok LibSuiteSparse. $ get_num_r (
704
701
C_NULL , C_NULL , C_NULL ,
705
702
C_NULL , C_NULL , C_NULL ,
706
703
C_NULL , Q, C_NULL ,
@@ -711,7 +708,7 @@ get_num_z = Symbol(umf_name("get_numeric", :ComplexF64))
711
708
umfpack_numeric! (lu) # ensure the numeric decomposition exists
712
709
(lnz, unz, n_row, n_col, nz_diag) = umf_lunz (lu)
713
710
Rs = unsafe_wrap (Array, _sizedjlmalloc (n_row, Float64), n_row)
714
- @isok $ get_num_r (
711
+ @isok LibSuiteSparse. $ get_num_r (
715
712
C_NULL , C_NULL , C_NULL ,
716
713
C_NULL , C_NULL , C_NULL ,
717
714
C_NULL , C_NULL , C_NULL ,
@@ -732,7 +729,7 @@ get_num_z = Symbol(umf_name("get_numeric", :ComplexF64))
732
729
Lj = unsafe_wrap (Array, _sizedjlmalloc (lnz, Int64), lnz)
733
730
Lx = Vector {Float64} (undef, lnz)
734
731
Lz = Vector {Float64} (undef, lnz)
735
- @isok $ get_num_z (
732
+ @isok LibSuiteSparse. $ get_num_z (
736
733
Lp, Lj, Lx, Lz,
737
734
C_NULL , C_NULL , C_NULL , C_NULL ,
738
735
C_NULL , C_NULL , C_NULL , C_NULL ,
@@ -748,7 +745,7 @@ get_num_z = Symbol(umf_name("get_numeric", :ComplexF64))
748
745
Ui = unsafe_wrap (Array, _sizedjlmalloc (unz, Int64), unz)
749
746
Ux = Vector {Float64} (undef, unz)
750
747
Uz = Vector {Float64} (undef, unz)
751
- @isok $ get_num_z (
748
+ @isok LibSuiteSparse. $ get_num_z (
752
749
C_NULL , C_NULL , C_NULL , C_NULL ,
753
750
Up, Ui, Ux, Uz,
754
751
C_NULL , C_NULL , C_NULL , C_NULL ,
@@ -762,7 +759,7 @@ get_num_z = Symbol(umf_name("get_numeric", :ComplexF64))
762
759
umfpack_numeric! (lu) # ensure the numeric decomposition exists
763
760
(lnz, unz, n_row, n_col, nz_diag) = umf_lunz (lu)
764
761
P = unsafe_wrap (Array, _sizedjlmalloc (n_row, Int64), n_row)
765
- @isok $ get_num_z (
762
+ @isok LibSuiteSparse. $ get_num_z (
766
763
C_NULL , C_NULL , C_NULL , C_NULL ,
767
764
C_NULL , C_NULL , C_NULL , C_NULL ,
768
765
P, C_NULL , C_NULL , C_NULL ,
@@ -773,7 +770,7 @@ get_num_z = Symbol(umf_name("get_numeric", :ComplexF64))
773
770
umfpack_numeric! (lu) # ensure the numeric decomposition exists
774
771
(lnz, unz, n_row, n_col, nz_diag) = umf_lunz (lu)
775
772
Q = unsafe_wrap (Array, _sizedjlmalloc (n_col, Int64), n_col)
776
- @isok $ get_num_z (
773
+ @isok LibSuiteSparse. $ get_num_z (
777
774
C_NULL , C_NULL , C_NULL , C_NULL ,
778
775
C_NULL , C_NULL , C_NULL , C_NULL ,
779
776
C_NULL , Q, C_NULL , C_NULL ,
@@ -784,7 +781,7 @@ get_num_z = Symbol(umf_name("get_numeric", :ComplexF64))
784
781
umfpack_numeric! (lu) # ensure the numeric decomposition exists
785
782
(lnz, unz, n_row, n_col, nz_diag) = umf_lunz (lu)
786
783
Rs = unsafe_wrap (Array, _sizedjlmalloc (n_row, Float64), n_row)
787
- @isok $ get_num_z (
784
+ @isok LibSuiteSparse. $ get_num_z (
788
785
C_NULL , C_NULL , C_NULL , C_NULL ,
789
786
C_NULL , C_NULL , C_NULL , C_NULL ,
790
787
C_NULL , C_NULL , C_NULL , C_NULL ,
@@ -927,14 +924,14 @@ for Tv in (:Float64, :ComplexF64)
927
924
@eval function umfpack_free_symbolic (symbolic:: Symbolic , :: Type{$Tv} , :: Type{Int64} )
928
925
if _isnotnull (symbolic)
929
926
r = Ref (symbolic. p)
930
- $ _free_symbolic (r)
927
+ LibSuiteSparse. $ _free_symbolic (r)
931
928
end
932
929
end
933
930
_free_numeric = Symbol (umf_name (" free_numeric" , Tv))
934
931
@eval function umfpack_free_numeric (numeric:: Numeric , :: Type{$Tv} , :: Type{Int64} )
935
932
if _isnotnull (numeric)
936
933
r = Ref (numeric. p)
937
- $ _free_numeric (r)
934
+ LibSuiteSparse. $ _free_numeric (r)
938
935
end
939
936
end
940
937
@@ -944,7 +941,7 @@ for Tv in (:Float64, :ComplexF64)
944
941
umfpack_symbolic! (lu, q)
945
942
old_prl = lu. control[JL_UMFPACK_PRL]
946
943
lu. control[JL_UMFPACK_PRL] = level
947
- @isok $ _report_symbolic (lu. symbolic, lu. control)
944
+ @isok LibSuiteSparse. $ _report_symbolic (lu. symbolic, lu. control)
948
945
lu. control[JL_UMFPACK_PRL] = old_prl
949
946
lu
950
947
end
@@ -954,15 +951,15 @@ for Tv in (:Float64, :ComplexF64)
954
951
umfpack_numeric! (lu; q)
955
952
old_prl = lu. control[JL_UMFPACK_PRL]
956
953
lu. control[JL_UMFPACK_PRL] = level
957
- @isok $ _report_numeric (lu. numeric, lu. control)
954
+ @isok LibSuiteSparse. $ _report_numeric (lu. numeric, lu. control)
958
955
lu. control[JL_UMFPACK_PRL] = old_prl
959
956
lu
960
957
end
961
958
# the control and info arrays
962
959
_defaults = Symbol (umf_name (" defaults" , Tv))
963
960
@eval function get_umfpack_control (:: Type{$Tv} , :: Type{Int64} )
964
961
control = Vector {Float64} (undef, UMFPACK_CONTROL)
965
- $ _defaults (control)
962
+ LibSuiteSparse. $ _defaults (control)
966
963
# Put julia's config here
967
964
# disable iterative refinement by default Issue #122
968
965
control[JL_UMFPACK_IRSTEP] = 0
0 commit comments