Changeset 84e50984 in tol


Ignore:
Timestamp:
Feb 3, 2009, 9:16:58 AM (18 years ago)
Author:
Víctor de Buen <vdebuen@…>
Branches:
1941-docker-image-to-test, devel, master
Children:
44e5e09
Parents:
23b4ae2
Message:

New argument forceNaturalOrder in CholeskiFactor
CHOLMOD API for choleski solve treat P and Pt as products instaed of linear sistem solvers

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@560 be4846ae-f051-483a-831f-b64e7d08527f

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tol/btol/vmatrix_type/vmatgra.cpp

    r23b4ae2 r84e50984  
    17151715//--------------------------------------------------------------------
    17161716DeclareContensClass(BVMat, BVMatTemporary, BVMatCholeskiFactor);
    1717 DefExtOpr(1, BVMatCholeskiFactor, "CholeskiFactor", 1, 2, "VMatrix Text",
    1718   "(VMatrix X [, Text S=\"X\"])",
     1717DefExtOpr(1, BVMatCholeskiFactor, "CholeskiFactor", 1, 3, "VMatrix Text Real",
     1718  "(VMatrix X [, Text S=\"X\", Real force_natural_order=false])",
    17191719  I2("Returns the Choleski decomposition of a symmetric positive definite "
    17201720     "virtual matrix S, that will be built as: \n"
    … …  
    17301730     "In this case you only can handle with L and P using CholeskiSolve method.\n"
    17311731     "Otherwise no operation is performed and unknown virtual matrix is returned."
    1732      "NOTE: At current version P is allways the identity but next versions could be "
    1733      "able to handle with generic permutation mtrices.\n",
     1732     "If force_natural_order is true then P is the identity.\n",
    17341733     "Devuelve la descomposicion de Choleski de una matriz simetrica S definida "
    17351734     "positiva, la cual se construye de esta forma: \n"
    … …  
    17471746     "En otro caso no se realiza ninguna operacion y se devuelve la matriz "
    17481747     "virtual desconocida.\n"
    1749      "NOTA: En la presente versión P es siempre la identidad pero en próximas "
    1750      "versiones será posible utilizar permutaciones genéricas.\n"),
     1748     "Si force_natural_order es falso entonces P es la identidad.\n"),
    17511749    BOperClassify::MatrixAlgebra_);
    17521750//--------------------------------------------------------------------
    … …  
    17551753{
    17561754  BText S="X";
     1755  bool force = false;
    17571756  if(Arg(2)) { S=Text(Arg(2)); }
    1758   BVMat::CholeskiFactor(VMat(Arg(1)),contens_,S,true);
     1757  if(Arg(3)) { force=Real(Arg(3))!=0.0; }
     1758
     1759  BVMat::CholeskiFactor(VMat(Arg(1)),contens_,S,true,force);
    17591760  assert(contens_.Check());
    17601761}
    … …  
    17701771     "  sys=\"LLt\"    => F=    L*L'  *x = b\n"
    17711772     "  sys=\"PtL\"    => F= P'*L     *x = b\n"
    1772      "  sys=\"LtP\"    => F=     L'*P *x = b\n"
    1773      "  sys=\"Lt\"     => F=      L'  *x = b\n"
     1773     "  sys=\"LtP\"    => F=     *L'*P*x = b\n"
     1774     "  sys=\"Lt\"     => F=     *L'  *x = b\n"
    17741775     "  sys=\"L\"      => F=    L     *x = b\n"
    17751776     "  sys=\"Pt\"     => F= P'       *x = b\n"
    1776      "  sys=\"P\"      => F=        P *x = b\n"
     1777     "  sys=\"P\"      => F=         P*x = b\n"
    17771778     "At current version P is allways the identity but next versions could be "
    17781779     "able to handle with generic permutation mtrices.\n"
    … …  
    17901791     "  sys=\"LLt\"    => F=    L*L'  *x = b\n"
    17911792     "  sys=\"PtL\"    => F= P'*L     *x = b\n"
    1792      "  sys=\"LtP\"    => F=     L'*P *x = b\n"
    1793      "  sys=\"Lt\"     => F=      L'  *x = b\n"
     1793     "  sys=\"LtP\"    => F=     *L'*P*x = b\n"
     1794     "  sys=\"Lt\"     => F=     *L'  *x = b\n"
    17941795     "  sys=\"L\"      => F=    L     *x = b\n"
    17951796     "  sys=\"Pt\"     => F= P'       *x = b\n"
    1796      "  sys=\"P\"      => F=        P *x = b\n"
     1797     "  sys=\"P\"      => F=         P*x = b\n"
    17971798     "La matriz L es triangular"
    17981799     "El factor puede ser una matriz Blas.R.Dense triangular inferior, en "
Note: See TracChangeset for help on using the changeset viewer.