glucat 0.12.0
tuning.h
Go to the documentation of this file.
1#ifndef GLUCAT_TEST_TUNING_H
2#define GLUCAT_TEST_TUNING_H
3/***************************************************************************
4 GluCat : Generic library of universal Clifford algebra templates
5 tuning.h : Class definitions to control test tuning
6 -------------------
7 begin : Sun 2001-12-09
8 copyright : (C) 2001-2021 by Paul C. Leopardi
9 ***************************************************************************
10
11 This library is free software: you can redistribute it and/or modify
12 it under the terms of the GNU Lesser General Public License as published
13 by the Free Software Foundation, either version 3 of the License, or
14 (at your option) any later version.
15
16 This library is distributed in the hope that it will be useful,
17 but WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 GNU Lesser General Public License for more details.
20
21 You should have received a copy of the GNU Lesser General Public License
22 along with this library. If not, see <http://www.gnu.org/licenses/>.
23
24 ***************************************************************************
25 This library is based on a prototype written by Arvind Raja and was
26 licensed under the LGPL with permission of the author. See Arvind Raja,
27 "Object-oriented implementations of Clifford algebras in C++: a prototype",
28 in Ablamowicz, Lounesto and Parra (eds.)
29 "Clifford algebras with numeric and symbolic computations", Birkhauser, 1996.
30 ***************************************************************************
31 See also Arvind Raja's original header comments in glucat.h
32 ***************************************************************************/
33
34namespace glucat
35{
36 const unsigned int Tuning_Int_Digits = std::numeric_limits<int>::digits;
37 const unsigned int Tuning_Max_Threshold = 1 << Tuning_Int_Digits;
38
39 // Specific tuning policy constants and tuning policies
40
42 const unsigned int Tuning_Slow_Basis_Max_Count = 0;
46
47 using tuning_slow = tuning
48 <
50 Tuning_Default_Div_Max_Steps,
51 Tuning_Default_CR_Sqrt_Max_Steps,
52 Tuning_Default_DB_Sqrt_Max_Steps,
53 Tuning_Default_Log_Max_Outer_Steps,
54 Tuning_Default_Log_Max_Inner_Steps,
59 Tuning_Default_Denom_Different_Bits,
60 Tuning_Default_Extra_Different_Bits,
61 Tuning_Default_Function_Precision
62 >;
63
64 const unsigned int Tuning_Naive_Mult_Matrix_Threshold = 0;
68
69 using tuning_naive = tuning
70 <
72 Tuning_Default_Div_Max_Steps,
73 Tuning_Default_CR_Sqrt_Max_Steps,
74 Tuning_Default_DB_Sqrt_Max_Steps,
75 Tuning_Default_Log_Max_Outer_Steps,
76 Tuning_Default_Log_Max_Inner_Steps,
80 Tuning_Default_Products_Size_Threshold,
81 Tuning_Default_Denom_Different_Bits,
82 Tuning_Default_Extra_Different_Bits,
83 Tuning_Default_Function_Precision
84 >;
85
86 const unsigned int Tuning_Fast_Mult_Matrix_Threshold = 0;
87 const unsigned int Tuning_Fast_Div_Max_Steps = 0;
88 const unsigned int Tuning_Fast_CR_Sqrt_Max_Steps = 256;
89 const unsigned int Tuning_Fast_DB_Sqrt_Max_Steps = 256;
90 const unsigned int Tuning_Fast_Log_Max_Outer_Steps = 16;
91 const unsigned int Tuning_Fast_Log_Max_Inner_Steps = 8;
92 const unsigned int Tuning_Fast_Basis_Max_Count = 1;
93 const unsigned int Tuning_Fast_Fast_Size_Threshold = 0;
94 const unsigned int Tuning_Fast_Inv_Fast_Dim_Threshold = 0;
96
97 using tuning_fast = tuning
98 <
109 Tuning_Default_Denom_Different_Bits,
110 Tuning_Default_Extra_Different_Bits,
111 Tuning_Default_Function_Precision
112 >;
113}
114#endif // GLUCAT_TEST_TUNING_H
const unsigned int Tuning_Slow_Products_Size_Threshold
Definition tuning.h:45
const unsigned int Tuning_Slow_Basis_Max_Count
Definition tuning.h:42
const unsigned int Tuning_Fast_Fast_Size_Threshold
Definition tuning.h:93
const unsigned int Tuning_Fast_Basis_Max_Count
Definition tuning.h:92
const unsigned int Tuning_Fast_Div_Max_Steps
Definition tuning.h:87
const unsigned int Tuning_Naive_Basis_Max_Count
Definition tuning.h:65
const unsigned int Tuning_Naive_Inv_Fast_Dim_Threshold
Definition tuning.h:67
const unsigned int Tuning_Slow_Fast_Size_Threshold
Definition tuning.h:43
tuning< Tuning_Slow_Mult_Matrix_Threshold, Tuning_Default_Div_Max_Steps, Tuning_Default_CR_Sqrt_Max_Steps, Tuning_Default_DB_Sqrt_Max_Steps, Tuning_Default_Log_Max_Outer_Steps, Tuning_Default_Log_Max_Inner_Steps, Tuning_Slow_Basis_Max_Count, Tuning_Slow_Fast_Size_Threshold, Tuning_Slow_Inv_Fast_Dim_Threshold, Tuning_Slow_Products_Size_Threshold, Tuning_Default_Denom_Different_Bits, Tuning_Default_Extra_Different_Bits, Tuning_Default_Function_Precision > tuning_slow
Definition tuning.h:47
const unsigned int Tuning_Fast_DB_Sqrt_Max_Steps
Definition tuning.h:89
tuning< Tuning_Fast_Mult_Matrix_Threshold, Tuning_Fast_Div_Max_Steps, Tuning_Fast_CR_Sqrt_Max_Steps, Tuning_Fast_DB_Sqrt_Max_Steps, Tuning_Fast_Log_Max_Outer_Steps, Tuning_Fast_Log_Max_Inner_Steps, Tuning_Fast_Basis_Max_Count, Tuning_Fast_Fast_Size_Threshold, Tuning_Fast_Inv_Fast_Dim_Threshold, Tuning_Fast_Products_Size_Threshold, Tuning_Default_Denom_Different_Bits, Tuning_Default_Extra_Different_Bits, Tuning_Default_Function_Precision > tuning_fast
Definition tuning.h:97
const unsigned int Tuning_Slow_Mult_Matrix_Threshold
Definition tuning.h:41
const unsigned int Tuning_Slow_Inv_Fast_Dim_Threshold
Definition tuning.h:44
const unsigned int Tuning_Fast_Inv_Fast_Dim_Threshold
Definition tuning.h:94
const unsigned int Tuning_Int_Digits
Definition tuning.h:36
const unsigned int Tuning_Fast_Log_Max_Outer_Steps
Definition tuning.h:90
const unsigned int Tuning_Max_Threshold
Definition tuning.h:37
const unsigned int Tuning_Fast_CR_Sqrt_Max_Steps
Definition tuning.h:88
const unsigned int Tuning_Fast_Log_Max_Inner_Steps
Definition tuning.h:91
tuning< Tuning_Naive_Mult_Matrix_Threshold, Tuning_Default_Div_Max_Steps, Tuning_Default_CR_Sqrt_Max_Steps, Tuning_Default_DB_Sqrt_Max_Steps, Tuning_Default_Log_Max_Outer_Steps, Tuning_Default_Log_Max_Inner_Steps, Tuning_Naive_Basis_Max_Count, Tuning_Naive_Fast_Size_Threshold, Tuning_Naive_Inv_Fast_Dim_Threshold, Tuning_Default_Products_Size_Threshold, Tuning_Default_Denom_Different_Bits, Tuning_Default_Extra_Different_Bits, Tuning_Default_Function_Precision > tuning_naive
Definition tuning.h:69
const unsigned int Tuning_Fast_Products_Size_Threshold
Definition tuning.h:95
const unsigned int Tuning_Naive_Fast_Size_Threshold
Definition tuning.h:66
const unsigned int Tuning_Fast_Mult_Matrix_Threshold
Definition tuning.h:86
const unsigned int Tuning_Naive_Mult_Matrix_Threshold
Definition tuning.h:64