1 /* ========================================================================== */
2 /* === UMFPACK_defaults ===================================================== */
3 /* ========================================================================== */
4 
5 /* -------------------------------------------------------------------------- */
6 /* Copyright (c) 2005-2012 by Timothy A. Davis, http://www.suitesparse.com.   */
7 /* All Rights Reserved.  See ../Doc/License.txt for License.                  */
8 /* -------------------------------------------------------------------------- */
9 
10 /*
11     User-callable.  Sets default control parameters.  See umfpack_defaults.h
12     for details.
13 */
14 
15 #include "umf_internal.h"
16 
UMFPACK_defaults(double Control[UMFPACK_CONTROL])17 GLOBAL void UMFPACK_defaults
18 (
19     double Control [UMFPACK_CONTROL]
20 )
21 {
22     Int i ;
23 
24     if (!Control)
25     {
26 	/* silently return if no Control array */
27 	return ;
28     }
29 
30     for (i = 0 ; i < UMFPACK_CONTROL ; i++)
31     {
32 	Control [i] = 0 ;
33     }
34 
35     /* ---------------------------------------------------------------------- */
36     /* default control settings: can be modified at run-time */
37     /* ---------------------------------------------------------------------- */
38 
39     /* used in UMFPACK_report_* routines: */
40     Control [UMFPACK_PRL] = UMFPACK_DEFAULT_PRL ;
41 
42     Control [UMFPACK_DENSE_ROW] = UMFPACK_DEFAULT_DENSE_ROW ;
43     Control [UMFPACK_DENSE_COL] = UMFPACK_DEFAULT_DENSE_COL ;
44     Control [UMFPACK_AMD_DENSE] = UMFPACK_DEFAULT_AMD_DENSE ;
45     Control [UMFPACK_STRATEGY] = UMFPACK_DEFAULT_STRATEGY ;
46     Control [UMFPACK_AGGRESSIVE] = UMFPACK_DEFAULT_AGGRESSIVE ;
47     Control [UMFPACK_SINGLETONS] = UMFPACK_DEFAULT_SINGLETONS ;
48     Control [UMFPACK_ORDERING] = UMFPACK_DEFAULT_ORDERING ;
49     Control [UMFPACK_PIVOT_TOLERANCE] = UMFPACK_DEFAULT_PIVOT_TOLERANCE ;
50     Control [UMFPACK_SYM_PIVOT_TOLERANCE] = UMFPACK_DEFAULT_SYM_PIVOT_TOLERANCE;
51     Control [UMFPACK_BLOCK_SIZE] = UMFPACK_DEFAULT_BLOCK_SIZE ;
52     Control [UMFPACK_ALLOC_INIT] = UMFPACK_DEFAULT_ALLOC_INIT ;
53     Control [UMFPACK_FRONT_ALLOC_INIT] = UMFPACK_DEFAULT_FRONT_ALLOC_INIT ;
54     Control [UMFPACK_SCALE] = UMFPACK_DEFAULT_SCALE ;
55 
56     /* used in UMFPACK_*solve: */
57     Control [UMFPACK_IRSTEP] = UMFPACK_DEFAULT_IRSTEP ;
58 
59     /* ---------------------------------------------------------------------- */
60     /* compile-time settings: cannot be modified at run-time */
61     /* ---------------------------------------------------------------------- */
62 
63 #ifdef NBLAS
64     /* do not use the BLAS - use in-line C code instead */
65     Control [UMFPACK_COMPILED_WITH_BLAS] = 0 ;
66 #else
67     /* use externally-provided BLAS (dgemm, dger, dgemv, zgemm, zgeru, zgemv) */
68     Control [UMFPACK_COMPILED_WITH_BLAS] = 1 ;
69 #endif
70 }
71