* Bug #8210 fixed - Inserting UMFPACK examples in the Demos gui as demos 91/11391/23
Paul BIGNIER [Wed, 24 Apr 2013 14:34:22 +0000 (16:34 +0200)]
 * Renamed umfpack/examples into umfpack/demos,
 * Added gateway file to communicate with the Demos gui,
 * Updated all the files linked to umfpack/examples/... so they point to umfpack/demos/...

Change-Id: I146545494dbe4b561f374f485a9a321c532dc9d5

39 files changed:
scilab/CHANGES
scilab/modules/umfpack/demos/arc130.rua [moved from scilab/modules/umfpack/examples/arc130.rua with 100% similarity]
scilab/modules/umfpack/demos/bcsstk24.rsa [moved from scilab/modules/umfpack/examples/bcsstk24.rsa with 100% similarity]
scilab/modules/umfpack/demos/condestsp.sce [new file with mode: 0644]
scilab/modules/umfpack/demos/ex14.rua [moved from scilab/modules/umfpack/examples/ex14.rua with 100% similarity]
scilab/modules/umfpack/demos/harwell-boeing.sce [new file with mode: 0644]
scilab/modules/umfpack/demos/sparse_matrices.sce [new file with mode: 0644]
scilab/modules/umfpack/demos/umfpack.dem.gateway.sce [new file with mode: 0644]
scilab/modules/umfpack/demos/utm300.rua [moved from scilab/modules/umfpack/examples/utm300.rua with 100% similarity]
scilab/modules/umfpack/demos/young1c.csa [moved from scilab/modules/umfpack/examples/young1c.csa with 100% similarity]
scilab/modules/umfpack/examples/bench.txt [deleted file]
scilab/modules/umfpack/examples/scisptdem1.dem [deleted file]
scilab/modules/umfpack/examples/scisptdem2.dem [deleted file]
scilab/modules/umfpack/examples/scisptdem3.dem [deleted file]
scilab/modules/umfpack/help/en_US/PlotSparse.xml
scilab/modules/umfpack/help/en_US/ReadHBSparse.xml
scilab/modules/umfpack/help/en_US/cond2sp.xml
scilab/modules/umfpack/help/en_US/condestsp.xml
scilab/modules/umfpack/help/en_US/rafiter.xml
scilab/modules/umfpack/help/en_US/res_with_prec.xml
scilab/modules/umfpack/help/en_US/taucs_chfact.xml
scilab/modules/umfpack/help/en_US/taucs_chget.xml
scilab/modules/umfpack/help/en_US/taucs_chinfo.xml
scilab/modules/umfpack/help/en_US/umf_lufact.xml
scilab/modules/umfpack/help/en_US/umfpack.xml
scilab/modules/umfpack/macros/scisptdemo.sci
scilab/modules/umfpack/tests/unit_tests/condestsp.dia.ref
scilab/modules/umfpack/tests/unit_tests/condestsp.tst
scilab/modules/umfpack/tests/unit_tests/res_with_prec.dia.ref
scilab/modules/umfpack/tests/unit_tests/res_with_prec.tst
scilab/modules/umfpack/tests/unit_tests/taucs_chfact.dia.ref
scilab/modules/umfpack/tests/unit_tests/taucs_chfact.tst
scilab/modules/umfpack/tests/unit_tests/taucs_chget.dia.ref
scilab/modules/umfpack/tests/unit_tests/taucs_chget.tst
scilab/modules/umfpack/tests/unit_tests/umf_lufact.dia.ref
scilab/modules/umfpack/tests/unit_tests/umf_lufact.tst
scilab/modules/umfpack/tests/unit_tests/utm300.dia.ref
scilab/modules/umfpack/tests/unit_tests/utm300.tst
scilab/modules/umfpack/umfpack.iss

index f781cbc..e5abfac 100644 (file)
@@ -316,6 +316,8 @@ In 6.0.0:
 
 * Bug #6314 fixed  - The identical code of %p_m_r() and  %r_m_p() was not factorized
 
+* Bug #8210 fixed  - Added UMFPACK examples to the Demo gui
+
 * Bug #9456 fixed  - bench_run did not work on a path or in a toolbox
 
 * Bug #11625 fixed - uicontrol table would not update object strings when edited interactively in the plot window
diff --git a/scilab/modules/umfpack/demos/condestsp.sce b/scilab/modules/umfpack/demos/condestsp.sce
new file mode 100644 (file)
index 0000000..25cef5b
--- /dev/null
@@ -0,0 +1,61 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright Bruno Pinçon, ESIAL-IECN, Inria CORIDA project
+//   <bruno.pincon@iecn.u-nancy.fr>
+//
+// This file is released under the 3-clause BSD license. See COPYING-BSD.
+
+// Using small matrices to test condestsp
+
+function demo_condestsp()
+
+    nb_tests = 20;
+    n = 100;
+    K1 = zeros(nb_tests,3);
+
+    disp(_("A small test for the condestsp"+...
+    " function: condestsp gives an"+...
+    " estimate of the condition number K1"+...
+    " in 1-norm of a real sparse matrix A:"));
+    disp("     K1 = ||A||_1 * ||A^(-1)||_1  ");
+    disp(_("     without explicitly computing the"+...
+    " inverse of A. condestsp uses a"+...
+    " factorization given by umf_lufact"+...
+    " but if you have already computed"+...
+    " this one it is recommended to give"+...
+    " the pointer to the factorization."));
+    disp(_("The test consists in forming small"+...
+    " sparse matrices (so as to compute"+...
+    " K1 exactly with norm(inv(full(A)),1))"+...
+    " whose values are chosen from the"+...
+    " normal distribution."));
+    halt(_("\nPress Return to continue...\n"));
+
+    for k = 1:nb_tests
+        m = grand(1,1,"uin",1000,2000);  // nnz
+        ij = grand(m,2,"uin",1,100);
+        v = grand(m,1,"nor",0,1);
+        A = sparse(ij,v,[n n]);
+        Lup = umf_lufact(A);
+        K1(k,1) = condestsp(A,Lup);
+        K1(k,2) = condestsp(A,Lup,5);
+        K1(k,3) = norm(A,1)*norm(inv(full(A)),1);
+        umf_ludel(Lup)
+    end
+
+    str2 = "------------";
+    str3 = "condest  t=2";
+    str4 = "condest  t=5";
+    str5 = "  K1 exact  ";
+
+    mprintf(" +-%s-+-%s-+-%s-+ \n",str2,str2,str2)
+    mprintf(" | %s | %s | %s | \n",str3,str4,str5)
+    mprintf(" +-%s-+-%s-+-%s-+ \n",str2,str2,str2)
+    for k=1:nb_tests
+        mprintf(" | %e | %e | %e | \n",K1(k,1:3))
+    end
+    mprintf(" +-%s-+-%s-+-%s-+ \n",str2,str2,str2)
+
+endfunction
+
+demo_condestsp()
+clear demo_condestsp;
diff --git a/scilab/modules/umfpack/demos/harwell-boeing.sce b/scilab/modules/umfpack/demos/harwell-boeing.sce
new file mode 100644 (file)
index 0000000..ebe69c8
--- /dev/null
@@ -0,0 +1,178 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright Bruno Pinçon, ESIAL-IECN, Inria CORIDA project
+//   <bruno.pincon@iecn.u-nancy.fr>
+//
+// This file is released under the 3-clause BSD license. See COPYING-BSD.
+
+function demos_harwell_boeing()
+
+    format(15);
+    cd "SCI/modules/umfpack/demos/"
+
+    disp(_("This test compares umfpack v3 and sparse v1.3 via their Scilab interface."));
+    disp(_("The test consists in loading Harwell-Boeing sparse matrices and solve linear system with a random rhs."));
+    disp(_("The matrices presented here come from the NIST server Matrix server:"));
+    printf("     http://math.nist.gov/MatrixMarket/matrices.html\n");
+    disp(_("Warning: tests 2 and 3 take much more time than the others."));
+    halt(_("\nPress Return to continue...\n"));
+
+
+    ////////////////////////////////////////////////////////////////////////////////////////////////////
+    // Test 1: Jacobian of a nonlinear system of ordinary differential equations (ODEs) modeling a laser
+    clear
+    nb_rep = 10;
+    A = ReadHBSparse("arc130.rua");
+    b = rand(130, 500);
+    t1 = 0;
+    for i = 1:nb_rep
+        tic(); x = umfpack(A,"\",b); t1 = t1 + toc();
+    end
+    t1 = t1 / nb_rep;
+    norm1 = norm(A*x-b);
+
+    t2 = 0;
+    for i = 1:nb_rep
+        tic(); x = A\b; t2 = t2 + toc();
+    end
+    t2 = t2 / nb_rep;
+    norm2 = norm(A*x-b);
+
+    disp("------------------------");
+    disp(_("Test 1: Jacobian of a nonlinear system of ordinary differential equations (ODEs) modeling a laser"));
+    disp(_("  Mean time and accuracy for umfpack (t1 and ||A*x-b||):"));
+    disp([t1 norm1]);
+    disp(_("  Time and accuracy for sparse module (t2 and ||A*x-b||):"));
+    disp([t2 norm2]);
+    disp(_("  Time comparison (t2/t1):"));
+    disp(t2/t1);
+    halt(_("\nPress Return to continue...\n"));
+
+
+    ////////////////////////////////////////////////////////////////////////////////////////////////////
+    // Test 2: Generalized eigenvalue problem Kx = (lambda)Mx
+    clear
+    nb_rep = 5;
+    B = ReadHBSparse("bcsstk24.rsa");
+    b = rand(3562, 1);
+    t1 = 0;
+    for i = 1:nb_rep
+        tic(); x = umfpack(B,"\",b); t1 = t1 + toc();
+    end
+    t1 = t1 / nb_rep;
+    norm1 = norm(B*x-b);
+
+    t2 = 0;
+    for i = 1:nb_rep
+        tic(); x = B\b; t2 = t2 + toc();
+    end
+    t2 = t2 / nb_rep;
+    norm2 = norm(B*x-b);
+
+    disp("------------------------");
+    disp(_("Test 2: Generalized eigenvalue problem Kx = (lambda)Mx"));
+    disp(_("  Mean time and accuracy for umfpack (t1 and ||A*x-b||):"));
+    disp([t1 norm1]);
+    disp(_("  Time and accuracy for sparse module (t2 and ||A*x-b||):"));
+    disp([t2 norm2]);
+    disp(_("  Time comparison (t2/t1):"));
+    disp(t2/t1);
+    halt(_("\nPress Return to continue...\n"));
+
+
+    ////////////////////////////////////////////////////////////////////////////////////////////////////
+    // Test 3: Matrices generated by the FIDAP Package
+    clear
+    nb_rep = 2;
+    C = ReadHBSparse("ex14.rua");
+    b = rand(3251, 1);
+    t1 = 0;
+    for i = 1:nb_rep
+        tic(); x = umfpack(C,"\",b); t1 = t1 + toc();
+    end
+    t1 = t1 / nb_rep;
+    norm1 = norm(C*x-b);
+
+    t2 = 0;
+    for i = 1:nb_rep
+        tic(); x = C\b; t2 = t2 + toc();
+    end
+    t2 = t2 / nb_rep;
+    norm2 = norm(C*x-b);
+
+    disp("------------------------");
+    disp(_("Test 3: Matrices generated by the FIDAP Package"));
+    disp(_("  Mean time and accuracy for umfpack (t1 and ||A*x-b||):"));
+    disp([t1 norm1]);
+    disp(_("  Time and accuracy for sparse module (t2 and ||A*x-b||):"));
+    disp([t2 norm2]);
+    disp(_("  Time comparison (t2/t1):"));
+    disp(t2/t1);
+    halt(_("\nPress Return to continue...\n"));
+
+
+    ////////////////////////////////////////////////////////////////////////////////////////////////////
+    // Test 4: Tokamak Matrices
+    clear
+    nb_rep = 1;
+    warning("off");
+    D = ReadHBSparse("utm300.rua");
+    b = rand(300, 1);
+    t1 = 0;
+    for i = 1:nb_rep
+        tic(); x = umfpack(D,"\",b); t1 = t1 + toc();
+    end
+    t1 = t1 / nb_rep;
+    norm1 = norm(D*x-b);
+
+    t2 = 0;
+    for i = 1:nb_rep
+        tic(); x = D\b; t2 = t2 + toc();
+    end
+    t2 = t2 / nb_rep;
+    norm2 = norm(D*x-b);
+
+    disp("------------------------");
+    disp(_("Test 4: Tokamak Matrices"));
+    disp(_("  Mean time and accuracy for umfpack (t1 and ||A*x-b||):"));
+    disp([t1 norm1]);
+    disp(_("  Time and accuracy for sparse module (t2 and ||A*x-b||):"));
+    disp([t2 norm2]);
+    disp(_("  Time comparison (t2/t1):"));
+    disp(t2/t1);
+    halt(_("\nPress Return to continue...\n"));
+
+
+    ////////////////////////////////////////////////////////////////////////////////////////////////////
+    // Test 5: Acoustic scattering
+    clear
+    nb_rep = 10;
+    E = ReadHBSparse("young1c.csa");
+    b = rand(841, 1);
+    t1 = 0;
+    for i = 1:nb_rep
+        tic(); x = umfpack(E,"\",b); t1 = t1 + toc();
+    end
+    t1 = t1 / nb_rep;
+    norm1 = norm(E*x-b);
+
+    t2 = 0;
+    for i = 1:nb_rep
+        tic(); x = E\b; t2 = t2 + toc();
+    end
+    t2 = t2 / nb_rep;
+    norm2 = norm(E*x-b);
+
+    disp("------------------------");
+    disp(_("Test 5: Acoustic scattering"));
+    disp(_("  Mean time and accuracy for umfpack (t1 and ||A*x-b||):"));
+    disp([t1 norm1]);
+    disp(_("  Time and accuracy for sparse module (t2 and ||A*x-b||):"));
+    disp([t2 norm2]);
+    disp(_("  Time comparison (t2/t1):"));
+    disp(t2/t1);
+    disp("------------------------");
+
+endfunction
+
+demos_harwell_boeing()
+clear demos_harwell_boeing;
diff --git a/scilab/modules/umfpack/demos/sparse_matrices.sce b/scilab/modules/umfpack/demos/sparse_matrices.sce
new file mode 100644 (file)
index 0000000..192d8bb
--- /dev/null
@@ -0,0 +1,217 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright Bruno Pinçon, ESIAL-IECN, Inria CORIDA project
+//   <bruno.pincon@iecn.u-nancy.fr>
+//
+// This file is released under the 3-clause BSD license. See COPYING-BSD.
+
+// The simple demo for the umfpack interface & others
+// sparse utility (scispt toolbox)
+
+function demo_sparse_matrices()
+
+    format(15);
+    cd "SCI/modules/umfpack/demos/"
+
+    disp(_("To load a sparse matrix stored in the Harwell-"+..
+    "Boeing format in Scilab, you may use the function ReadHBSparse."));
+    disp(_("4 matrices will be loaded for the demo: they come"+..
+    " from the University of Florida Sparse Matrix Collection:"));
+    printf("     www.cise.ufl.edu/research/sparse/matrices\n"+..
+    "     http://math.nist.gov/MatrixMarket/matrices.html");
+    disp(_("    maintained by Tim Davis, author of UMFPACK"));
+
+    mode(1)
+    [A1,descr1,ref1,mtype1] = ReadHBSparse("arc130.rua");
+    [A2,descr2,ref2,mtype2] = ReadHBSparse("bcsstk24.rsa");
+    [A3,descr3,ref3,mtype3] = ReadHBSparse("ex14.rua");
+    [A4,descr4,ref4,mtype4] = ReadHBSparse("young1c.csa");
+    mode(-1)
+
+    disp(_("To see the pattern of non zeros elements, "+..
+    "you may use the function PlotSparse."));
+    disp(_("Here we will display the 4 matrices"));
+    halt(_("\nPress Return to continue...\n"));
+
+    mode(1)
+    g = figure("visible", "off", "backgroundcolor", [1,1,1]);
+    old_winsid = winsid();
+    num = max(old_winsid);
+    g.figure_size = [800 800];
+    subplot(221)
+    PlotSparse(A1,"y+")
+    xtitle(ref1+"."+mtype1+": "+descr1)
+
+    subplot(222)
+    PlotSparse(A2)
+    xtitle(ref2+"."+mtype2+": "+descr2)
+
+    subplot(223)
+    PlotSparse(A3,"c.")
+    xtitle(ref3+"."+mtype3+": "+descr3)
+
+    subplot(224)
+    PlotSparse(A4,"r.")
+    xtitle(ref4+"."+mtype4+": "+descr4)
+    set(g, "visible", "on");
+    mode(-1)
+
+    disp(_("Now, using umfpack to solve some linear systems:"));
+    disp(_("     b1 = rand(size(A1,1),1);    -> to create a rhs"));
+    disp(_("     x1 = umfpack(A1,""\"",b1);     -> to solve A1*x1 = b1"));
+    disp(_("     norm_res = norm(A1*x1-b1);  -> norm of the residual"));
+    disp(_("this is done for the 4 matrices A1, A2, A3 and A4."));
+    halt(_("\nPress Return to continue...\n"));
+
+    mode(1)
+    n1 = size(A1,1);
+    b1 = rand(n1,1);
+    tic(); x1 = umfpack(A1,"\",b1); t1=toc();
+    norm_res1 = norm(A1*x1-b1);
+
+    n2 = size(A2,1);
+    b2 = rand(n2,1);
+    tic(); x2 = umfpack(A2,"\",b2); t2=toc();
+    norm_res2 = norm(A2*x2-b2);
+
+    n3 = size(A3,1);
+    b3 = rand(n3,1);
+    tic(); x3 = umfpack(A3,"\",b3); t3=toc();
+    norm_res3 =  norm(A3*x3-b3);
+
+    n4 = size(A4,1);
+    b4 = rand(n4,1);
+    tic(); x4 = umfpack(A4,"\",b4); t4=toc();
+    norm_res4 = norm(A4*x4-b4);
+    mode(-1)
+
+    disp(_("A1 ("+descr1+"): order = "+ string(n1) + " nnz = " + string(nnz(A1))));
+    printf(_("     norm of the residual = "+string(norm_res1)+"\n"+..
+    "     computing time       = "+string(t1)+"\n"));
+    disp(_("A2 ("+descr2+"): order = "+ string(n2) + " nnz = " + string(nnz(A2))));
+    printf(_("     norm of the residual = "+string(norm_res2)+"\n"+..
+    "     computing time       = "+string(t2)+"\n"));
+    disp(_("A3 ("+descr3+"): order = "+ string(n3) + " nnz = " + string(nnz(A3))));
+    printf(_("     norm of the residual = "+string(norm_res3)+"\n"+..
+    "     computing time       = "+string(t3)+"\n"));
+    disp(_("A4 ("+descr4+"): order = "+ string(n4) + " nnz = " + string(nnz(A4))));
+    printf(_("     norm of the residual = "+string(norm_res4)+"\n"+..
+    "     computing time       = "+string(t4)+"\n\n"));
+
+    disp(_("Now we will see how to use the lu factors:"));
+    disp(_("  1/ lu factors of a sparse matrix A are obtained through:"));
+    printf(_("     lup = umf_lufact(A)\n"+..
+    "     lup is a pointer to the lu factors (the memory is outside scilab space)\n"));
+    disp(_("  2/ for solving a linear system A*x = b, use:"));
+    printf(_("     x = umf_lusolve(lup,b)\n"+..
+    "     or  x = umf_lusolve(lup,b,""Ax=b"",A)  to add an iterative refinement step\n"));
+    disp(_("  3/ to solve A''*x=b you may use:"));
+    printf(_("     x = umf_lusolve(lup,b,""Ax''''=b"")\n"+..
+    "     or  x = umf_lusolve(lup,b,""Ax''''=b"",A)  to add an iterative refinement step\n"));
+    disp(_("  4/ you may also compute the 1-norm condition number quicky with:"));
+    printf(_("     K1 = condestsp(A,lup)\n"+..
+    "     K1 = condestsp(A) also works but in this case the lu factors are re-computed inside\n"));
+    disp(_("  5/ if you don''t need the lu factors anymore, it is recommended to free them with:"));
+    printf(_("     umf_ludel(lup)\n"+..
+    "     if you have lost your pointer you may use umf_ludel() which frees all the current umf lu factors\n"));
+    halt(_("\nPress Return to continue...\n"));
+
+    mode(1)
+    lup1 = umf_lufact(A1);
+    x1 = umf_lusolve(lup1,b1);
+    norm_res1 =  norm(A1*x1-b1);
+    x1 = umf_lusolve(lup1,b1,"Ax=b",A1);
+    norm_res1r = norm(A1*x1-b1);
+    K1 = condestsp(A1,lup1);
+    umf_ludel(lup1);
+
+    lup2 = umf_lufact(A2);
+    x2 = umf_lusolve(lup2,b2);
+    norm_res2 = norm(A2*x2-b2);
+    x2 = umf_lusolve(lup2,b2,"Ax=b",A2);
+    norm_res2r = norm(A2*x2-b2);
+    K2 = condestsp(A2,lup2);
+    umf_ludel(lup2);
+
+    lup3 = umf_lufact(A3);
+    x3 = umf_lusolve(lup3,b3);
+    norm_res3 = norm(A3*x3-b3);
+    x3 = umf_lusolve(lup3,b3,"Ax=b",A3);
+    norm_res3r = norm(A3*x3-b3);
+    K3 = condestsp(A3,lup3);
+    umf_ludel(lup3);
+
+    lup4 = umf_lufact(A4);
+    x4 = umf_lusolve(lup4,b4);
+    norm_res4 = norm(A4*x4-b4);
+    x4 = umf_lusolve(lup4,b4,"Ax=b",A4);
+    norm_res4r = norm(A4*x4-b4);
+    K4 = condestsp(A4,lup4,5);
+    umf_ludel(lup4);
+    mode(-1)
+
+    disp(_("A1 ("+descr1+"): order = "+ string(n1) + " nnz = " + string(nnz(A1))));
+    printf(_("     K1 = " + string(K1)+"\n"+..
+    "     norm of the residual    = "+string(norm_res1)+"\n"+..
+    "     same but with refinment = "+string(norm_res1r)+"\n"));
+    disp(_("A2 ("+descr2+"): order = "+ string(n2) + " nnz = " + string(nnz(A2))));
+    printf(_("     K2 = " + string(K2)+"\n"+..
+    "     norm of the residual    = "+string(norm_res2)+"\n"+..
+    "     same but with refinment = "+string(norm_res2r)+"\n"));
+    disp(_("A3 ("+descr3+"): order = "+ string(n3) + " nnz = " + string(nnz(A3))));
+    printf(_("     K3 = " + string(K3)+"\n"+..
+    "     norm of the residual    = "+string(norm_res3)+"\n"+..
+    "     same but with refinment = "+string(norm_res3r)+"\n"));
+    disp(_("A4 ("+descr4+"): order = "+ string(n4) + " nnz = " + string(nnz(A4))));
+    printf(_("     K4 = " + string(K4)+"\n"+..
+    "     norm of the residual     = "+string(norm_res4)+"\n"+..
+    "     same but with refinement = "+string(norm_res4r)+"\n\n"));
+
+    clear A1 A3 A4 x1 x3 x4 b1 b3 b4
+
+    disp(_("Now we will see how to use the taucs snmf stuff on the matrix A2."));
+    disp(_("This is useful and recommended when your matrix is symmetric positive definite (s.p.d.)."));
+    disp(_("  1/ the Cholesky factorization of a s.p.d. matrix A is obtained with:"));
+    printf(_("     Cp = taucs_chfact(A)\n"+..
+    "     Cp is a pointer to the Cholesky fact. (the memory is outside scilab space)\n"));
+    disp(_("  2/ for solving a linear system A*x = b then use:"));
+    printf(_("     x = taucs_chsolve(Cp,b)\n"));
+    disp(_("  3/ for the same thing with one refinement step, use:"));
+    printf(_("     xr = taucs_chsolve(Cp,b,A)\n"));
+    disp(_("  4/ you may also compute the 2-norm condition number with:"));
+    printf(_("     [K2, lm, vm, lM, vM] = cond2sp(A, Cp [, itermax, eps, verb])\n"));
+    disp(_("  5/ if you don''t need the Cholesky factorization anymore, it is recommended to free it with taucs_chdel(Cp)"));
+    printf(_("     if you have lost your pointer you may use taucs_chdel() which frees memory for all the current Cholesky factorizations.\n"));
+    halt(_("\nPress Return to continue...\n"));
+
+    mode(1)
+    tic();
+    Cp2 = taucs_chfact(A2);
+    x2 = taucs_chsolve(Cp2,b2);
+    t2_chol = toc();
+    norm_res_chol_2 = norm(A2*x2-b2);
+    [x2r, r2] = rafiter(A2, Cp2, b2, x2);
+    norm_res_chol_2r = norm(r2);
+    K2_norm2 = cond2sp(A2, Cp2);
+    taucs_chdel(Cp2);
+    mode(-1)
+
+    disp(_("A2 ("+descr2+"): order = "+ string(n2) + " nnz = " + string(nnz(A2))));
+    printf(_("     K2 (1-norm) = " + string(K2)+"\n"+..
+    "     K2 (2-norm) = " + string(K2_norm2)+"\n"));
+    disp(_(" with umfpack:"));
+    printf(_("     norm of the residual      = "+string(norm_res2)+"\n"+..
+    "     same but with refinment   = "+string(norm_res2r)+"\n"+..
+    "     computing time            = "+string(t2)+"\n"));
+    disp(_(" with the taucs snmf Cholesky solver:"));
+    printf(_("     norm of the residual      = "+string(norm_res_chol_2)+"\n"+..
+    "     same but with refinment   = "+string(norm_res_chol_2r)+"\n"+..
+    "     computing time            = "+string(t2_chol)+"\n"));
+
+    if num == max(winsid()) then
+        xdel(num);
+    end
+
+endfunction
+
+demo_sparse_matrices()
+clear demo_sparse_matrices;
diff --git a/scilab/modules/umfpack/demos/umfpack.dem.gateway.sce b/scilab/modules/umfpack/demos/umfpack.dem.gateway.sce
new file mode 100644 (file)
index 0000000..58d5432
--- /dev/null
@@ -0,0 +1,23 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2016 - Scilab Enterprises - Paul Bignier
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+
+function subdemolist = demo_gateway()
+
+    demopath = get_absolute_file_path("umfpack.dem.gateway.sce");
+    add_demo(gettext("UMFPACK"), demopath+"umfpack.dem.gateway.sce");
+
+    subdemolist = [_("Sparse Matrices"), "sparse_matrices.sce"
+    _("Harwell-Boeing"), "harwell-boeing.sce"
+    _("condestsp"), "condestsp.sce"];
+
+    subdemolist(:,2) = demopath + subdemolist(:,2);
+
+endfunction
+
+subdemolist = demo_gateway();
+clear demo_gateway;
diff --git a/scilab/modules/umfpack/examples/bench.txt b/scilab/modules/umfpack/examples/bench.txt
deleted file mode 100644 (file)
index e5ba9f7..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-
-  A test on few matrices between umfpack V3 and Sparse 1.3
-  via their Scilab interface. The test consists in loading
-  some Harwell-Boeing sparse matrices and solve a linear
-  system with a random rhs via umfpack and sparse 1.3 :
-
-  t1 = 0 
-  for i = 1:nb_rep
-     hrtimer(); x = umfpack(A,"\",b); t1 = t1 + hrtimer();
-  end
-  t1 = t1 / nb_rep
-
-  t2 = 0 
-  for i = 1:nb_rep
-     hrtimer(); x = A\b; t2 = t2 + hrtimer();
-  end
-  t2 = t2 / nb_rep
-
-  then display t1 and t2 and also the norm 2 residual ; i have
-  used nb_rep = 10.
-
-  The computer is a 933 M Hz Pentium III / 1 Go Memory / 256 Mo cache
-  running Gnu-Linux and the ATLAS BLAS is used.
-
-  n   : order of the matrix
-  nnz : number of non zeros elements
-  t1  : mean time for solving Ax=b with umfpack
-  t2  : mean time for solving Ax=b with Sparse 1.3 (current
-        package to solve sparse systems in scilab)
-
-   
- The matrices come from the Florida University Sparse Collection
- (www.cise.ufl.edu/research/sparse/matrices) maintained by Tim 
- Davis the author of UMFPACK
-
- The hrtimer is a scilab extension package from Christoph L. Spiel
- & Lydia E. van Dijk  (www.hammersmith-consulting.com). 
-
- -----------------------------------------------------------------
-
- arc130.rua : n = 130 , nnz = 1037 
-
- mean time umfpack V3 :    t1 = 0.002783 , ||Ax-b|| = 6.538563e-11 
- mean time sparse 1.3 :    t2 = 0.015559 , ||Ax-b|| = 1.026040e-10 
-             speed up : t2/t1 = 5.591677  
- -----------------------------------------------------------------
-
- bcsstk24.rsa : n = 3562 , nnz = 159910 
-
- mean time umfpack V3 :    t1 =  1.540691 , ||Ax-b|| = 1.298751e-07 
- mean time sparse 1.3 :    t2 = 52.546995 , ||Ax-b|| = 1.299314e-07 
-             speed up : t2/t1 = 34.106113  
- -----------------------------------------------------------------
-
- bcsstk34.rsa : n = 588 , nnz = 21418 
-
- mean time umfpack V3 :    t1 = 0.068137 , ||Ax-b|| = 2.921253e-14 
- mean time sparse 1.3 :    t2 = 4.162029 , ||Ax-b|| = 6.665581e-14 
-             speed up : t2/t1 = 61.083241  
- -----------------------------------------------------------------
-
- bcsstk38.rsa : n = 8032 , nnz = 355460 
-
- mean time umfpack V3 :    t1 =   4.671143 , ||Ax-b|| = 1.465322e-09 
- mean time sparse 1.3 :    t2 = 295.272744 , ||Ax-b|| = 5.456355e-09 
-             speed up : t2/t1 = 63.212092  
- -----------------------------------------------------------------
-
- cavity16.rua : n = 4562 , nnz = 137887 
-
- mean time umfpack V3 :    t1 =  0.915590 , ||Ax-b|| = 3.816630e-11 
- mean time sparse 1.3 :    t2 = 21.034642 , ||Ax-b|| = 1.278231e-10 
-             speed up : t2/t1 = 22.973871  
- -----------------------------------------------------------------
-
- epb2.rua : n = 25228 , nnz = 175027 
-
- mean time umfpack V3 :    t1 =   5.606093 , ||Ax-b|| = 1.141705e-12 
- mean time sparse 1.3 :    t2 = 951.516539 , ||Ax-b|| = 5.832767e-12 
-             speed up : t2/t1 = 169.729009  
- -----------------------------------------------------------------
-
- ex14.rua : n = 3251 , nnz = 65875 
-
- mean time umfpack V3 :    t1 =   1.014328 , ||Ax-b|| = 7.475711e-07 
- mean time sparse 1.3 :    t2 = 159.702604 , ||Ax-b|| = 2.502100e-06 
-             speed up : t2/t1 = 157.446646  
- -----------------------------------------------------------------
-
- utm5940.rua : n = 5940 , nnz = 83842 
-
- mean time umfpack V3 :    t1 =   1.037315 , ||Ax-b|| = 7.392123e-08 
- mean time sparse 1.3 :    t2 = 288.563648 , ||Ax-b|| = 1.583351e-07 
-             speed up : t2/t1 = 278.183294  
- -----------------------------------------------------------------
-
- wang1.rua : n = 2903 , nnz = 19093 
-
- mean time umfpack V3 :    t1 =  0.654956 , ||Ax-b|| = 1.286372e-12 
- mean time sparse 1.3 :    t2 = 29.773115 , ||Ax-b|| = 6.243728e-12 
-             speed up : t2/t1 = 45.458204  
diff --git a/scilab/modules/umfpack/examples/scisptdem1.dem b/scilab/modules/umfpack/examples/scisptdem1.dem
deleted file mode 100644 (file)
index 48a3ef9..0000000
+++ /dev/null
@@ -1,265 +0,0 @@
-// the simple demo for the umfpack interface & others
-// sparse utilility (scispt toolbox)
-
-old_winsid = winsid();
-
-num1=max(winsid())+1
-num2=num1+1
-num3=num1+2
-num4=num1+3
-
-messagebox(["To load a sparse matrix  stored  in  the  Harwell";
-          "Boeing format in scilab, you may use the function";
-          "                                                 ";
-          "                 ReadHBSparse                    ";
-          "                                                 ";
-          "4 matrices will be loaded for the demo : they co-";
-          "mes from the University of Florida Sparse Matrix "
-          "Collection :                                     ";
-          "                                                 ";
-          "    www.cise.ufl.edu/research/sparse/matrices    ";
-          "                                                 ";    
-          "maintained by Tim Davis the author of UMFPACK    "],"modal","info");
-
-mode(1)
-[A1,descr1,ref1,mtype1] = ReadHBSparse(SCI+"/modules/umfpack/examples/arc130.rua");
-[A2,descr2,ref2,mtype2] = ReadHBSparse(SCI+"/modules/umfpack/examples/bcsstk24.rsa");
-[A3,descr3,ref3,mtype3] = ReadHBSparse(SCI+"/modules/umfpack/examples/ex14.rua");
-[A4,descr4,ref4,mtype4] = ReadHBSparse(SCI+"/modules/umfpack/examples/young1c.csa");
-
-mode(-1)
-messagebox(["To see the pattern of non zeros elements";
-          "you may use the function :              ";
-          "                                        ";
-          "         PlotSparse                     ";
-          "                                        ";
-          "  here we will display the 4 matrices   "],"modal","info");
-
-mode(1)
-
-scf(num1)
-PlotSparse(A1,"y+")
-xtitle(ref1+"."+mtype1+" : "+descr1)
-
-scf(num2)
-PlotSparse(A2)
-xtitle(ref2+"."+mtype2+" : "+descr2)
-
-scf(num3)
-PlotSparse(A3,"c.")
-xtitle(ref3+"."+mtype3+" : "+descr3)
-
-scf(num4)
-PlotSparse(A4,"r.")
-xtitle(ref4+"."+mtype4+" : "+descr4)
-
-mode(-1)
-
-messagebox(["Now use umfpack to solve some linear system :      ";
-          "                                                   ";
-          "b1 = rand(size(A1,1),1);    -> to create a rhs     ";
-          "x1 = umfpack(A1,""\"",b1);    -> to solve A1x1 = b1  ";
-          "norm_res = norm(A1*x1-b1);  -> norm of the residual";
-          "                                                   ";
-          "this is done for the 4 matrices A1, A2, A3 and A4  "],"modal","info");
-mode(1)
-n1 = size(A1,1);
-b1 = rand(n1,1);          
-timer(); x1 = umfpack(A1,"\",b1); t1=timer();
-norm_res1 = norm(A1*x1-b1);
-
-n2 = size(A2,1);
-b2 = rand(n2,1);          
-timer(); x2 = umfpack(A2,"\",b2); t2=timer();
-norm_res2 = norm(A2*x2-b2);
-
-n3 = size(A3,1);
-b3 = rand(n3,1);          
-timer(); x3 = umfpack(A3,"\",b3); t3=timer();
-norm_res3 =  norm(A3*x3-b3);
-
-n4 = size(A4,1);
-b4 = rand(n4,1);          
-timer(); x4 = umfpack(A4,"\",b4); t4=timer();
-norm_res4 = norm(A4*x4-b4);
-
-mode(-1)
-
-messagebox([" A1 ("+descr1+") : order = "+ string(n1) + " nnz = " + string(nnz(A1));
-          " norm of the residual = "+string(norm_res1) ;
-          " computing time       = "+string(t1)  ;
-          "                                     ";
-          " A2 ("+descr2+") : order = "+ string(n2) + " nnz = " + string(nnz(A2));
-          " norm of the residual = "+string(norm_res2) ;
-          " computing time       = "+string(t2)  ;
-          "                                     ";
-          " A3 ("+descr3+") : order = "+ string(n3) + " nnz = " + string(nnz(A3));
-          " norm of the residual = "+string(norm_res3) ;
-          " computing time       = "+string(t3)  ;
-          "                                     ";
-          " A4 ("+descr4+") : order = "+ string(n4) + " nnz = " + string(nnz(A4));
-          " norm of the residual = "+string(norm_res4) ;
-          " computing time       = "+string(t4)],"modal","info");
-
-messagebox(["             Now we will see how to use the lu factors                 ";
-          "                                                                       ";
-          " 1/ lu factors of a sparse matrix A are gotten with :                  ";
-          "                                                                       ";
-          "    lup = umf_lufact(A)                                                ";
-          "                                                                       ";
-          " lup is a pointer to the lu factors (the  memory  is outside scilab space)  ";
-          "                                                                       ";
-          " 2/ for solving a linear system A x = b use :                          ";
-          "                                                                       ";
-          "    x = umf_lusolve(lup,b)                                             ";
-          " or x = umf_lusolve(lup,b,""Ax=b"",A)  to add an iterative refinement step";
-           "                                                                       ";
-          " 3/ to solve A''x=b you may use :                                      ";
-          "                                                                       ";                    
-          "    x = umf_lusolve(lup,b,""Ax''''=b"")                                ";
-          " or x = umf_lusolve(lup,b,""Ax''''=b"",A) to add an iterative refinement step";
-          "                                                                       ";
-          " 4/ you may also compute the 1-norm condition number quicky with :     ";
-          "                                                                       ";
-          "    K1 = condestsp(A,lup)                                              ";
-          "                                                                       ";
-          " K1 = condestsp(A) works also but in this case the lu factors are re-computed";
-          " inside.                                                               ";
-           "                                                                       ";
-           " 5/  WHEN you does''t need anymore the lu factors it is recommended to ";
-           "     free the memory used by them with :                               ";
-           "                                                                       ";
-          "        umf_ludel(lup)                                                 ";
-          "                                                                       ";
-          " If you have lost your pointer you may use  umf_ludel() which free all the ";
-          " current umf lu factors.                                               "],"modal","info");
-       
-          
-mode(1)
-
-lup1 = umf_lufact(A1);
-x1 = umf_lusolve(lup1,b1);
-norm_res1 =  norm(A1*x1-b1);
-x1 = umf_lusolve(lup1,b1,"Ax=b",A1);
-norm_res1r = norm(A1*x1-b1);
-K1 = condestsp(A1,lup1);
-umf_ludel(lup1);
-
-lup2 = umf_lufact(A2);
-x2 = umf_lusolve(lup2,b2);
-norm_res2 = norm(A2*x2-b2);
-x2 = umf_lusolve(lup2,b2,"Ax=b",A2);
-norm_res2r = norm(A2*x2-b2);
-K2 = condestsp(A2,lup2);
-umf_ludel(lup2);
-
-lup3 = umf_lufact(A3);
-x3 = umf_lusolve(lup3,b3);
-norm_res3 = norm(A3*x3-b3);
-x3 = umf_lusolve(lup3,b3,"Ax=b",A3);
-norm_res3r = norm(A3*x3-b3);
-K3 = condestsp(A3,lup3);
-umf_ludel(lup3);
-
-lup4 = umf_lufact(A4);
-x4 = umf_lusolve(lup4,b4);
-norm_res4 = norm(A4*x4-b4);
-x4 = umf_lusolve(lup4,b4,"Ax=b",A4);
-norm_res4r = norm(A4*x4-b4);
-K4 = condestsp(A4,lup4,5);
-umf_ludel(lup4);
-
-mode(-1)
-
-messagebox([" A1 ("+descr1+") : order = "+ string(n1) + " nnz = " + string(nnz(A1));
-           " K1 = " + string(K1);
-          " norm of the residual      = "+string(norm_res1) ;
-          " idem but with raffinement = "+string(norm_res1r);
-          "                                     ";
-          " A2 ("+descr2+") : order = "+ string(n2) + " nnz = " + string(nnz(A2));
-           " K2 = " + string(K2);
-          " norm of the residual      = "+string(norm_res2) ;
-          " idem but with raffinement = "+string(norm_res2r);
-          "                                     ";
-          " A3 ("+descr3+") : order = "+ string(n3) + " nnz = " + string(nnz(A3));
-           " K3 = " + string(K3);
-          " norm of the residual      = "+string(norm_res3) ;
-          " idem but with raffinement = "+string(norm_res3r);
-          "                                     ";
-          " A4 ("+descr4+") : order = "+ string(n4) + " nnz = " + string(nnz(A4));
-           " K4 = " + string(K4);
-          " norm of the residual      = "+string(norm_res4) ;
-          " idem but with raffinement = "+string(norm_res4r)],"modal","info");
-
-
-clear A1 A3 A4 x1 x3 x4 b1 b3 b4
-
-messagebox(["            Now we will see how to use the taucs snmf stuff            ";
-          " This is useful and recommended when your matrix is symmetric positive ";
-          " definite (s.p.d.)                                                     ";
-          "                                                                       ";
-          " 1/ The Cholesky factorization of a s.p.d. matrix A is gotten with :   ";
-          "                                                                       ";
-          "    Cp = taucs_chfact(A)                                               ";
-          "                                                                       ";
-          " Cp is a pointer to the Cholesky fact. (the  memory  is outside scilab ";
-           " space)                                                                ";
-          "                                                                       ";
-          " 2/ for solving a linear system A x = b then use :                     ";
-          "                                                                       ";
-          "    x = taucs_chsolve(Cp,b)                                            ";
-           "                                                                       ";
-          " 3/ for the same thing with one refinement step use :                  ";
-          "                                                                       ";
-          "    xr = taucs_chsolve(Cp,b,A)                                         ";
-          "                                                                       ";
-          " 4/ you may also compute the 2-norm condition number with :            ";
-          "                                                                       ";
-          "    [K2, lm, vm, lM, vM] = cond2sp(A, Cp [, itermax, eps, verb])       ";
-          "                                                                       ";
-           "                                                                       ";
-           " 5/  WHEN you does''t need the Cholesky factorization is recommended to";
-           "     free the memory used by them with :                               ";
-           "                                                                       ";
-          "        taucs_chdel(Cp)                                                ";
-          "                                                                       ";
-          " If you have lost your pointer you may use  taucs_chdel() which free   ";
-          " memory for all the current Cholesky factorizations.                   "],"modal","info");
-
-mode(1)
-timer();
-Cp2 = taucs_chfact(A2);
-x2 = taucs_chsolve(Cp2,b2);
-t2_chol = timer();
-norm_res_chol_2 = norm(A2*x2-b2);
-[x2r, r2] = rafiter(A2, Cp2, b2, x2);
-norm_res_chol_2r = norm(r2);
-K2_norm2 = cond2sp(A2, Cp2);
-taucs_chdel(Cp2);
-mode(-1)
-
-messagebox([" On the s.p.d. matrix A2 : ";
-          " A2 ("+descr2+") : order = "+ string(n2) + " nnz = " + string(nnz(A2));
-           " K2 (1-norm) = " + string(K2);
-           " K2 (2-norm) = " + string(K2_norm2);
-           "   ";
-          " with umfpack : ";
-          " norm of the residual      = "+string(norm_res2) ;
-          " idem but with raffinement = "+string(norm_res2r);
-          " computing time            = "+string(t2)  ;
-          "                                     ";
-          " with the taucs snmf Cholesky solver ";
-          " norm of the residual      = "+string(norm_res_chol_2) ;
-          " idem but with raffinement = "+string(norm_res_chol_2r);
-          " computing time            = "+string(t2_chol)  ;
-          "                                     ";
-          "      CLICK ON OK TO CONTINUE        "]);
-
-
-messagebox(["   Demo is out : I hope that this stuff will be  ";
-          " useful for you ! Don''t hesitate to mail me about";
-          " bugs (Bruno.Pincon@iecn.u-nancy.fr) or simply to";
-          " tell that this interface is of interest for you "],"modal","info");
-         
-xdel(num1); xdel(num2); xdel(num3) ; xdel(num4)
-if old_winsid == [] then, xdel(0), end
diff --git a/scilab/modules/umfpack/examples/scisptdem2.dem b/scilab/modules/umfpack/examples/scisptdem2.dem
deleted file mode 100644 (file)
index 402f7e8..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-// display the file bench.txt
-
-txt = read(SCI+"/modules/umfpack/examples/bench.txt",-1,1,"(A)");
-messagebox(txt,"modal","info");
-
diff --git a/scilab/modules/umfpack/examples/scisptdem3.dem b/scilab/modules/umfpack/examples/scisptdem3.dem
deleted file mode 100644 (file)
index f4160cd..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-// pour tester condestsp
-//
-// on utilise des petites matrices pour verifier
-
-nb_tests = 20;
-n = 100;
-K1 = zeros(nb_tests,3);
-messagebox(["A small test for the condestsp"     ;...
-          "function : condestsp gives an"      ;...
-          "estimate of the condition number K1";...
-          "in 1-norm of a real sparse matrix A:";...
-          "                                 "  ;...
-          "  K1 = || A ||_1 || A^(-1) ||_1  "  ;...
-          "                                 "  ;...
-          "without explicitly computing the"   ;...
-          "inverse of A. condestsp uses a"    ;...
-          "factorization given by umf_lufact"  ;...
-          "but if you have already computed"   ;...
-          "this one it is recommended to give" ;...
-          "the pointer onto the factorization.";...
-          "                                   ";...
-          "The test consists in forming small ";...
-          "sparse matrices (so as to compute  ";...
-          "exactly K1 with norm(inv(full(A)),1))";...
-           "whose values are chosen from the"  ;...
-           "normal distribution.               "],"modal","info");
-
-for k = 1:nb_tests
-   m = grand(1,1,"uin",1000,2000);  // nnz
-   ij = grand(m,2,"uin",1,100);
-   v = grand(m,1,"nor",0,1);
-   A = sparse(ij,v,[n n]);
-   Lup = umf_lufact(A);
-   K1(k,1) = condestsp(A,Lup);
-   K1(k,2) = condestsp(A,Lup,5);
-   K1(k,3) = norm(A,1)*norm(inv(full(A)),1);
-   umf_ludel(Lup)
-end
-
-str2 = "------------";
-str3 = "condest  t=2";
-str4 = "condest  t=5";
-str5 = "  K1 exact  ";
-
-mprintf(" +-%s-+-%s-+-%s-+ \n",str2,str2,str2)
-mprintf(" | %s | %s | %s | \n",str3,str4,str5)
-mprintf(" +-%s-+-%s-+-%s-+ \n",str2,str2,str2) 
-for k=1:nb_tests
-   mprintf(" | %e | %e | %e | \n",K1(k,1:3))
-end
-mprintf(" +-%s-+-%s-+-%s-+ \n",str2,str2,str2)
index 85903ce..a1ebb27 100644 (file)
@@ -59,12 +59,12 @@ o  circle
     <refsection>
         <title>Examples</title>
         <programlisting role="example"><![CDATA[ 
-[A,description,ref,mtype] = ReadHBSparse(SCI+"/modules/umfpack/examples/arc130.rua");
+[A,description,ref,mtype] = ReadHBSparse(SCI+"/modules/umfpack/demos/arc130.rua");
 PlotSparse(A,"y+")
 xtitle(ref + "." + mtype + " : " + description)
  ]]></programlisting>
         <scilab:image>
-            [A,description,ref,mtype] = ReadHBSparse(SCI+"/modules/umfpack/examples/arc130.rua");
+            [A,description,ref,mtype] = ReadHBSparse(SCI+"/modules/umfpack/demos/arc130.rua");
             PlotSparse(A,"y+")
             xtitle(ref + "." + mtype + " : " + description)
         </scilab:image>
index 2cf4905..1b3d934 100644 (file)
@@ -78,7 +78,7 @@ c = A|E     for assembled|unassembled matrix
     <refsection>
         <title>Examples</title>
         <programlisting role="example"><![CDATA[ 
-[A] = ReadHBSparse(SCI+"/modules/umfpack/examples/arc130.rua");
+[A] = ReadHBSparse(SCI+"/modules/umfpack/demos/arc130.rua");
  ]]></programlisting>
     </refsection>
     <refsection role="see also">
index bc386c6..a7d7391 100644 (file)
@@ -120,7 +120,7 @@ B = A - l0*speye(A)
         </para>
         <programlisting role="example"><![CDATA[ 
 
-[A] = ReadHBSparse(SCI+"/modules/umfpack/examples/bcsstk24.rsa");
+[A] = ReadHBSparse(SCI+"/modules/umfpack/demos/bcsstk24.rsa");
 C_ptr = taucs_chfact(A);
 [K2, lm, vm, lM, vM] = cond2sp(A , C_ptr, 1.e-5, 50, %t );
 taucs_chdel(C_ptr)
@@ -143,7 +143,7 @@ mprintf(" |l-lr| <= ||Avr-lrvr|| = %e , |l-lr|/lr <= %e \n\r", norm_rr, norm_rr/
     <refsection>
         <title>Examples</title>
         <programlisting role="example"><![CDATA[ 
-[A] = ReadHBSparse(SCI+"/modules/umfpack/examples/bcsstk24.rsa");
+[A] = ReadHBSparse(SCI+"/modules/umfpack/demos/bcsstk24.rsa");
 C_ptr = taucs_chfact(A);
 [K2, lm, vm, lM, vM] = cond2sp(A , C_ptr, 1.e-5, 50, %t );
 taucs_chdel(C_ptr)
index 43783cb..78d7a01 100644 (file)
@@ -77,7 +77,7 @@ K1 = condestsp(A)
 K1e = norm(A,1)*norm(inv(full(A)),1)
 
 // another example
-[A] = ReadHBSparse(SCI+"/modules/umfpack/examples/arc130.rua");
+[A] = ReadHBSparse(SCI+"/modules/umfpack/demos/arc130.rua");
 K1 = condestsp(A)
 // this example is not so big so that we can do the verif
 K1e = norm(A,1)*norm(inv(full(A)),1)
index b2a61c6..8fbd5bd 100644 (file)
@@ -88,7 +88,7 @@
     <refsection>
         <title>Examples</title>
         <programlisting role="example"><![CDATA[ 
-[A] = ReadHBSparse(SCI+"/modules/umfpack/examples/bcsstk24.rsa");
+[A] = ReadHBSparse(SCI+"/modules/umfpack/demos/bcsstk24.rsa");
 C_ptr = taucs_chfact(A);
 b = rand(size(A,1),1);
 x0 = taucs_chsolve(C_ptr, b);
index 8582dcc..3dae964 100644 (file)
@@ -60,7 +60,7 @@
     <refsection>
         <title>Examples</title>
         <programlisting role="example"><![CDATA[ 
-[A] = ReadHBSparse(SCI+"/modules/umfpack/examples/bcsstk24.rsa");
+[A] = ReadHBSparse(SCI+"/modules/umfpack/demos/bcsstk24.rsa");
 C_ptr = taucs_chfact(A);
 b = rand(size(A,1),1);
 x0 = taucs_chsolve(C_ptr, b);
index bbd2d40..ef72ffc 100644 (file)
@@ -91,7 +91,7 @@ taucs_chdel(Cp)
         <programlisting role="example"><![CDATA[ 
 // Example #2 a real example
 // first load a sparse matrix
-[A] = ReadHBSparse(SCI+"/modules/umfpack/examples/bcsstk24.rsa");
+[A] = ReadHBSparse(SCI+"/modules/umfpack/demos/bcsstk24.rsa");
 // compute the factorization
 Cp = taucs_chfact(A); 
 b = rand(size(A,1),1); // a random rhs
index 0daa10f..70304a5 100644 (file)
@@ -68,7 +68,7 @@ taucs_chdel(Cp)
         <programlisting role="example"><![CDATA[
 // Example #2 a real example
 // first load a sparse matrix
-[A] = ReadHBSparse(SCI+"/modules/umfpack/examples/bcsstk24.rsa");
+[A] = ReadHBSparse(SCI+"/modules/umfpack/demos/bcsstk24.rsa");
 // compute the factorization
 Cptr = taucs_chfact(A);
 // retrieve the factor at scilab level
@@ -91,7 +91,7 @@ cnz_exact = nnz(Ct)
 taucs_chdel(Cptr)
  ]]></programlisting>
         <scilab:image>
-            [A] = ReadHBSparse(SCI+"/modules/umfpack/examples/bcsstk24.rsa");
+            [A] = ReadHBSparse(SCI+"/modules/umfpack/demos/bcsstk24.rsa");
             Cptr = taucs_chfact(A);
             [Ct, p] = taucs_chget(Cptr);
             PlotSparse(A) ; xtitle("Initial matrix A (bcsstk24.rsa)")
index 9410193..5862075 100644 (file)
@@ -87,7 +87,7 @@ Cp = taucs_chfact(A);
         <programlisting role="example"><![CDATA[ 
 // Example #2 a real example
 // first load a sparse matrix
-[A] = ReadHBSparse(SCI+"/modules/umfpack/examples/bcsstk24.rsa");
+[A] = ReadHBSparse(SCI+"/modules/umfpack/demos/bcsstk24.rsa");
 // compute the factorization
 Cp = taucs_chfact(A);
 [OK, n, cnz]=taucs_chinfo(Cp)
index 603c0f9..cc0d9ad 100644 (file)
@@ -78,7 +78,7 @@ umf_ludel(Lup)
 
 // a real (but small)  example
 // first load a sparse matrix
-[A] = ReadHBSparse(SCI+"/modules/umfpack/examples/arc130.rua");
+[A] = ReadHBSparse(SCI+"/modules/umfpack/demos/arc130.rua");
 // compute the factorization
 Lup = umf_lufact(A); 
 b = rand(size(A,1),1); // a random rhs
index 9285d7b..44bc167 100644 (file)
@@ -100,7 +100,7 @@ x = umfpack(A,"\",b)  // x must be [1+i; 2+2i; 3+3i; 4 + 4i; 5+5i]
 
 // A benchmark of several linear solvers
 
-[A,descr,ref,mtype] = ReadHBSparse(SCI+"/modules/umfpack/examples/bcsstk24.rsa"); 
+[A,descr,ref,mtype] = ReadHBSparse(SCI+"/modules/umfpack/demos/bcsstk24.rsa"); 
 
 b = 0*ones(size(A,1),1);
 
index e0b7dea..ceae17a 100644 (file)
@@ -25,9 +25,9 @@ function [] = scisptdemo()
     a;title.font_style = 6;
 
 
-    scisptdemolist = [gettext("how to use this stuff")           , SCI+"/modules/umfpack/examples/scisptdem1.dem";
-    gettext("display a speed comparison test") , SCI+"/modules/umfpack/examples/scisptdem2.dem";
-    gettext("small tests for condestsp")       , SCI+"/modules/umfpack/examples/scisptdem3.dem"];
+    scisptdemolist = [gettext("how to use this stuff")           , SCI+"/modules/umfpack/demos/scisptdem1.dem";
+    gettext("display a speed comparison test") , SCI+"/modules/umfpack/demos/scisptdem2.dem";
+    gettext("small tests for condestsp")       , SCI+"/modules/umfpack/demos/scisptdem3.dem"];
     while %t
         num=x_choose(scisptdemolist(:,1), gettext("Click to choose a demo"));
         if num==0 then
index 6cbb864..c3d74b6 100644 (file)
@@ -19,7 +19,7 @@ K1e = norm(A,1)*norm(inv(full(A)),1);
 if norm(K1e,39.385965) < 1E-6 then bugmes();quit;end
 if K1e <> K1 then bugmes();quit;end
 // another example
-[A] = ReadHBSparse(SCI+"/modules/umfpack/examples/arc130.rua");
+[A] = ReadHBSparse(SCI+"/modules/umfpack/demos/arc130.rua");
 K1 = condestsp(A);
 if round(K1) <> 10798708075 then bugmes();quit;end
 // this example is not so big so that we can do the verif
index abbe947..c74e96f 100644 (file)
@@ -24,7 +24,7 @@ if norm(K1e,39.385965) < 1E-6 then pause, end
 if K1e <> K1 then pause, end
 
 // another example
-[A] = ReadHBSparse(SCI+"/modules/umfpack/examples/arc130.rua");
+[A] = ReadHBSparse(SCI+"/modules/umfpack/demos/arc130.rua");
 K1 = condestsp(A);
 if round(K1) <> 10798708075 then pause, end
 
index c7bbe04..d5b273f 100644 (file)
@@ -5,7 +5,7 @@
 //  This file is distributed under the same license as the Scilab package.
 // ============================================================================
 // <-- CLI SHELL MODE -->
-[A] = ReadHBSparse(SCI+"/modules/umfpack/examples/bcsstk24.rsa");
+[A] = ReadHBSparse(SCI+"/modules/umfpack/demos/bcsstk24.rsa");
 C_ptr = taucs_chfact(A);
 b = rand(size(A,1),1);
 x0 = taucs_chsolve(C_ptr, b);
index b105d29..c0b90f2 100644 (file)
@@ -7,7 +7,7 @@
 
 // <-- CLI SHELL MODE -->
 
-[A] = ReadHBSparse(SCI+"/modules/umfpack/examples/bcsstk24.rsa");
+[A] = ReadHBSparse(SCI+"/modules/umfpack/demos/bcsstk24.rsa");
 C_ptr = taucs_chfact(A);
 b = rand(size(A,1),1);
 x0 = taucs_chsolve(C_ptr, b);
index 39f94f9..b3567ca 100644 (file)
@@ -20,7 +20,7 @@ if round(x) <> [ 1; 2; 3; 4; 5 ] then bugmes();quit;end
 taucs_chdel(Cp)
 // Example #2 a real example
 // first load a sparse matrix
-[A] = ReadHBSparse(SCI+"/modules/umfpack/examples/bcsstk24.rsa");
+[A] = ReadHBSparse(SCI+"/modules/umfpack/demos/bcsstk24.rsa");
 // compute the factorization
 Cp = taucs_chfact(A);
 b = rand(size(A,1),1); // a random rhs
index 773f1df..2a7dd1e 100644 (file)
@@ -24,7 +24,7 @@ taucs_chdel(Cp)
 
 // Example #2 a real example
 // first load a sparse matrix
-[A] = ReadHBSparse(SCI+"/modules/umfpack/examples/bcsstk24.rsa");
+[A] = ReadHBSparse(SCI+"/modules/umfpack/demos/bcsstk24.rsa");
 // compute the factorization
 Cp = taucs_chfact(A); 
 b = rand(size(A,1),1); // a random rhs
index 15764ef..ca9806a 100644 (file)
@@ -5,19 +5,19 @@
 //  This file is distributed under the same license as the Scilab package.
 // ============================================================================
 // <-- TEST WITH GRAPHIC -->
-// Example #1 : a small linear test system 
+// Example #1 : a small linear test system
 A = sparse( [ 2 -1  0  0  0;
-             -1  2 -1  0  0; 
-              0 -1  2 -1  0; 
-              0  0 -1  2 -1; 
-              0  0  0 -1  2] );
+-1  2 -1  0  0;
+0 -1  2 -1  0;
+0  0 -1  2 -1;
+0  0  0 -1  2] );
 Cp = taucs_chfact(A);
 [Ct, p] = taucs_chget(Cp);
 full(A(p,p) - Ct'*Ct);  // this must be near the null matrix
 taucs_chdel(Cp);
 // Example #2 a real example
 // first load a sparse matrix
-[A] = ReadHBSparse(SCI+"/modules/umfpack/examples/bcsstk24.rsa");
+[A] = ReadHBSparse(SCI+"/modules/umfpack/demos/bcsstk24.rsa");
 // compute the factorization
 Cptr = taucs_chfact(A);
 // retrieve the factor at scilab level
index 9e6bdbb..3ffae2e 100644 (file)
@@ -20,7 +20,7 @@ taucs_chdel(Cp);
 
 // Example #2 a real example
 // first load a sparse matrix
-[A] = ReadHBSparse(SCI+"/modules/umfpack/examples/bcsstk24.rsa");
+[A] = ReadHBSparse(SCI+"/modules/umfpack/demos/bcsstk24.rsa");
 // compute the factorization
 Cptr = taucs_chfact(A);
 // retrieve the factor at scilab level
index 7734da1..d7fe60c 100644 (file)
@@ -32,7 +32,7 @@ assert_checkequal(norm(A'*x-b), 0)
 umf_ludel(Lup)
 // a real (but small)  example
 // first load a sparse matrix
-[A] = ReadHBSparse(SCI+"/modules/umfpack/examples/arc130.rua");
+[A] = ReadHBSparse(SCI+"/modules/umfpack/demos/arc130.rua");
 // compute the factorization
 Lup = umf_lufact(A);
 b = rand(size(A,1),1); // a random rhs
index 4c4498a..7058c1c 100644 (file)
@@ -38,7 +38,7 @@ umf_ludel(Lup)
 
 // a real (but small)  example
 // first load a sparse matrix
-[A] = ReadHBSparse(SCI+"/modules/umfpack/examples/arc130.rua");
+[A] = ReadHBSparse(SCI+"/modules/umfpack/demos/arc130.rua");
 // compute the factorization
 Lup = umf_lufact(A);
 b = rand(size(A,1),1); // a random rhs
index 2d20022..c3b77a6 100644 (file)
@@ -8,7 +8,7 @@
 // Check value provided here:
 // http://math.nist.gov/MatrixMarket/data/SPARSKIT/tokamak/utm300.html
 warning("off");
-[A, dsc]=ReadHBSparse(SCI+"/modules/umfpack/examples/utm300.rua");
+[A, dsc]=ReadHBSparse(SCI+"/modules/umfpack/demos/utm300.rua");
 if dsc <> "utm300" then bugmes();quit;end
 [nl,nc] = size(A)
  nc  = 
index 7b46105..3f8759f 100644 (file)
@@ -11,7 +11,7 @@
 // http://math.nist.gov/MatrixMarket/data/SPARSKIT/tokamak/utm300.html
 warning("off");
 
-[A, dsc]=ReadHBSparse(SCI+"/modules/umfpack/examples/utm300.rua");
+[A, dsc]=ReadHBSparse(SCI+"/modules/umfpack/demos/utm300.rua");
 if dsc <> "utm300" then pause, end
 
 [nl,nc] = size(A)
index ad75f1a..a305b47 100644 (file)
@@ -40,7 +40,7 @@ Source: modules\{#UMFPACK}\macros\lib; DestDir: {app}\modules\{#UMFPACK}\macros;
 Source: modules\{#UMFPACK}\macros\*.sci; DestDir: {app}\modules\{#UMFPACK}\macros; Components: {#COMPN_SCILAB}
 Source: modules\{#UMFPACK}\macros\*.bin; DestDir: {app}\modules\{#UMFPACK}\macros; Components: {#COMPN_SCILAB}
 ;
-Source: modules\{#UMFPACK}\examples\*.*; DestDir: {app}\modules\{#UMFPACK}\examples; Flags: recursesubdirs;  Components: {#COMPN_SCILAB}
+;Source: modules\{#UMFPACK}\demos\*.*; DestDir: {app}\modules\{#UMFPACK}\demos; Flags: recursesubdirs;  Components: {#COMPN_SCILAB}
 ;
 Source: modules\{#UMFPACK}\tests\*.*; DestDir: {app}\modules\{#UMFPACK}\tests; Flags: recursesubdirs; Components: {#COMPN_SCILAB} and {#COMPN_TESTS}
 ;