Changeset 2583 in Sophya for trunk/SophyaLib/TArray/basarr.cc


Ignore:
Timestamp:
Jul 30, 2004, 12:24:12 PM (21 years ago)
Author:
cmv
Message:
  • Intro decision auto d'optimisation produit de matrices
  • Possibilite a l'utilisateur pour choisir l'optimisation
  • cas FxC optimise par copie

cmv 30/07/04

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/TArray/basarr.cc

    r2412 r2583  
    2929short  BaseArray::default_vector_type = ColumnVector;
    3030sa_size_t BaseArray::openmp_size_threshold = 200000;
     31uint_2 BaseArray::matrix_product_optim = 1;
    3132
    3233// ------ Methodes statiques globales --------
     34
     35//! Set optimization strategy for matrix product
     36/*!
     37  \param opt : bit coded optimization strategy
     38  \warning Default is opt=1
     39  \verbatim
     40  bit 0 : choose matrix product optimization or not
     41        0=no optimization, 1=optimization
     42  bit 1 : force optimization in any case (only if bit0=1)
     43          (if not the TMatrix::Multiply method decide or
     44           not if the product should be optimized)
     45        0=do not force and let the method decide, 1=force
     46  bit 2 : optimize the product A * B when A-columns and
     47          B-rows are not packed (for example if the product
     48          is C = ("A Fortran-like" * "B C-like").
     49        . That will do a copy of one of the two matrices,
     50          so that will result in an increase of the memory
     51          space needed.
     52        . For big matrices that decrease the computing time.
     53        . Do not use this optimisation for small matrices
     54          because that would increase the computing time.
     55        0=do not optimze that way, 1=optimze that way
     56  \endverbatim
     57  \verbatim
     58   Sumary of the allowed values for "opt"
     59           0 = no optimization at all (whatever the other bits are)
     60           1 = optimize but let the method decides if optimization
     61               is needed regarding the sizes of the matrices.
     62           3 = force optimization whatever the sizes of the matrices are.
     63           5 = optimisation with method decision ("1")
     64               AND optimize by copying when A-columns and B-rows
     65               are not packed
     66           7 = force optimization ("3")
     67               AND optimize by copying when A-columns and B-rows
     68               are not packed
     69  \endverbatim
     70*/
     71void BaseArray::SetMatProdOpt(uint_2 opt)
     72{
     73  matrix_product_optim = opt;
     74}
    3375
    3476//! Set maximum number of printed elements and print level
Note: See TracChangeset for help on using the changeset viewer.