1 // -*- C++ -*-
2 /**
3 * @brief ResourceMap defines top-most resourceMap strategies
4 *
5 * Copyright 2005-2021 Airbus-EDF-IMACS-ONERA-Phimeca
6 *
7 * This library is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU Lesser General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public License
18 * along with this library. If not, see <http://www.gnu.org/licenses/>.
19 *
20 */
21 #include <unistd.h> // for sysconf
22 #include "openturns/OTthread.hxx"
23 #include "openturns/OTconfig.hxx"
24 #include "openturns/OSS.hxx"
25 #include "openturns/ResourceMap.hxx"
26 #include "openturns/Exception.hxx"
27 #include "openturns/Path.hxx"
28 #include "openturns/Collection.hxx"
29 #include "openturns/XMLToolbox.hxx"
30 #ifdef OPENTURNS_HAVE_LIBXML2
31 #include <libxml/tree.h>
32 #endif
33
34 BEGIN_NAMESPACE_OPENTURNS
35
36 static const char * ConfigurationFileName = "openturns.conf";
37 #if defined OPENTURNS_HAVE_LIBXML2
38 static const char * RootElementName = "openturns-configuration";
39 static const char * XMLTag_value_str = "value_str";
40 static const char * XMLTag_value_float = "value_float";
41 static const char * XMLTag_value_int = "value_int";
42 static const char * XMLTag_value_bool = "value_bool";
43 #endif
44
45 static pthread_mutex_t ResourceMap_InstanceMutex_;
46 static ResourceMap * ResourceMap_P_instance_ = 0;
47 static const ResourceMap_init static_initializer_ResourceMap;
48
ResourceMap_init()49 ResourceMap_init::ResourceMap_init()
50 {
51 if (!ResourceMap_P_instance_)
52 {
53 #ifndef OT_MUTEXINIT_NOCHECK
54 pthread_mutexattr_t attr;
55 pthread_mutexattr_init( &attr);
56 pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
57 pthread_mutex_init(&ResourceMap_InstanceMutex_, &attr);
58 #else
59 pthread_mutex_init(&ResourceMap_InstanceMutex_, NULL);
60 #endif
61 ResourceMap_P_instance_ = new ResourceMap;
62 }
63 assert(ResourceMap_P_instance_);
64 }
65
~ResourceMap_init()66 ResourceMap_init::~ResourceMap_init()
67 {
68 if (ResourceMap_P_instance_)
69 pthread_mutex_destroy(&ResourceMap_InstanceMutex_);
70 delete ResourceMap_P_instance_;
71 ResourceMap_P_instance_ = 0;
72 }
73
74
75 template<>
MutexLockSingleton(ResourceMap & singleton)76 MutexLockSingleton<ResourceMap>::MutexLockSingleton( ResourceMap & singleton ) throw()
77 : singleton_(singleton)
78 , lock_(ResourceMap_InstanceMutex_) {}
79
80
81 /* GetInstance gives a locked access to the singleton */
GetInstance()82 MutexLockSingleton<ResourceMap> ResourceMap::GetInstance()
83 {
84 static const ResourceMap_init force_instantiation;
85 // ResourceMap_InstanceMutex_ is always initialized
86 return *ResourceMap_P_instance_;
87 }
88
89 /* Get the list of keys */
GetKeys()90 std::vector<String> ResourceMap::GetKeys()
91 {
92 return GetInstance().lock().getKeys();
93 }
94
GetStringKeys()95 std::vector<String> ResourceMap::GetStringKeys()
96 {
97 return GetInstance().lock().getStringKeys();
98 }
99
GetScalarKeys()100 std::vector<String> ResourceMap::GetScalarKeys()
101 {
102 return GetInstance().lock().getScalarKeys();
103 }
104
GetUnsignedIntegerKeys()105 std::vector<String> ResourceMap::GetUnsignedIntegerKeys()
106 {
107 return GetInstance().lock().getUnsignedIntegerKeys();
108 }
109
GetBoolKeys()110 std::vector<String> ResourceMap::GetBoolKeys()
111 {
112 return GetInstance().lock().getBoolKeys();
113 }
114
115 /* Get a value in the map */
GetType(const String & key)116 String ResourceMap::GetType(const String & key)
117 {
118 return GetInstance().lock().getType(key);
119 }
120
121 /* Get a value in the map */
Get(const String & key)122 String ResourceMap::Get(const String & key)
123 {
124 return GetInstance().lock().get(key);
125 }
126
GetAsString(const String & key)127 String ResourceMap::GetAsString(const String & key)
128 {
129 return GetInstance().lock().getAsString(key);
130 }
131
GetAsBool(const String & key)132 Bool ResourceMap::GetAsBool(const String & key)
133 {
134 return GetInstance().lock().getAsBool( key);
135 }
136
GetAsUnsignedInteger(const String & key)137 UnsignedInteger ResourceMap::GetAsUnsignedInteger(const String & key)
138 {
139 return GetInstance().lock().getAsUnsignedInteger(key);
140 }
141
GetAsScalar(const String & key)142 Scalar ResourceMap::GetAsScalar(const String & key)
143 {
144 return GetInstance().lock().getAsScalar(key);
145 }
146
GetSize()147 UnsignedInteger ResourceMap::GetSize()
148 {
149 return GetInstance().lock().getSize();
150 }
151
GetStringSize()152 UnsignedInteger ResourceMap::GetStringSize()
153 {
154 return GetInstance().lock().getStringSize();
155 }
156
GetScalarSize()157 UnsignedInteger ResourceMap::GetScalarSize()
158 {
159 return GetInstance().lock().getScalarSize();
160 }
161
GetUnsignedIntegerSize()162 UnsignedInteger ResourceMap::GetUnsignedIntegerSize()
163 {
164 return GetInstance().lock().getUnsignedIntegerSize();
165 }
166
GetBoolSize()167 UnsignedInteger ResourceMap::GetBoolSize()
168 {
169 return GetInstance().lock().getBoolSize();
170 }
171
172 /* Set a value in the map */
Set(const String & key,const String & value)173 void ResourceMap::Set(const String & key, const String & value)
174 {
175 GetInstance().lock().set(key, value);
176 }
177
SetAsString(const String & key,const String & value)178 void ResourceMap::SetAsString(const String & key, const String & value)
179 {
180 GetInstance().lock().setAsString(key, value);
181 }
182
SetAsBool(const String & key,const Bool value)183 void ResourceMap::SetAsBool(const String & key, const Bool value)
184 {
185 GetInstance().lock().setAsBool(key, value);
186 }
187
SetAsUnsignedInteger(const String & key,const UnsignedInteger value)188 void ResourceMap::SetAsUnsignedInteger(const String & key, const UnsignedInteger value)
189 {
190 GetInstance().lock().setAsUnsignedInteger(key, value);
191 }
192
SetAsScalar(const String & key,const Scalar value)193 void ResourceMap::SetAsScalar(const String & key, const Scalar value)
194 {
195 GetInstance().lock().setAsScalar(key, value);
196 }
197
AddAsString(const String & key,const String & value)198 void ResourceMap::AddAsString(const String & key, const String & value)
199 {
200 GetInstance().lock().addAsString(key, value);
201 }
202
AddAsBool(const String & key,const Bool value)203 void ResourceMap::AddAsBool(const String & key, const Bool value)
204 {
205 GetInstance().lock().addAsBool(key, value);
206 }
207
AddAsUnsignedInteger(const String & key,const UnsignedInteger value)208 void ResourceMap::AddAsUnsignedInteger(const String & key, const UnsignedInteger value)
209 {
210 GetInstance().lock().addAsUnsignedInteger(key, value);
211 }
212
AddAsScalar(const String & key,const Scalar value)213 void ResourceMap::AddAsScalar(const String & key, const Scalar value)
214 {
215 GetInstance().lock().addAsScalar(key, value);
216 }
217
HasKey(const String & key)218 Bool ResourceMap::HasKey(const String & key)
219 {
220 return GetInstance().lock().hasKey(key);
221 }
222
Reload()223 void ResourceMap::Reload()
224 {
225 return GetInstance().lock().reload();
226 }
227
RemoveKey(const String & key)228 void ResourceMap::RemoveKey(const String & key)
229 {
230 GetInstance().lock().removeKey(key);
231 }
232
FindKeys(const String & substr)233 std::vector<String> ResourceMap::FindKeys(const String & substr)
234 {
235 return GetInstance().lock().findKeys(substr);
236 }
237
238 /* Default constructor */
ResourceMap()239 ResourceMap::ResourceMap()
240 : mapString_()
241 , mapScalar_()
242 , mapUnsignedInteger_()
243 , mapBool_()
244 {
245 reload();
246 }
247
248 /* Method for retrieving information from the resource map */
getType(const String & key) const249 String ResourceMap::getType(const String & key) const
250 {
251 // First, try to retrieve the value from the String map
252 {
253 Collection<String> keys;
254 for (MapStringType::const_iterator it = mapString_.begin(); it != mapString_.end(); ++it)
255 {
256 keys.add(it->first);
257 }
258 MapStringType::const_iterator it = mapString_.find(key);
259 if (it != mapString_.end()) return "str";
260 }
261 // Second, try to retrieve the value from the Scalar map
262 {
263 Collection<String> keys;
264 for (MapScalarType::const_iterator it = mapScalar_.begin(); it != mapScalar_.end(); ++it)
265 {
266 keys.add(it->first);
267 }
268 MapScalarType::const_iterator it = mapScalar_.find(key);
269 if (it != mapScalar_.end()) return "float";
270 }
271 // Third, try to retrieve the value from the UnsignedInteger map
272 {
273 Collection<String> keys;
274 for (MapUnsignedIntegerType::const_iterator it = mapUnsignedInteger_.begin(); it != mapUnsignedInteger_.end(); ++it)
275 {
276 keys.add(it->first);
277 }
278 MapUnsignedIntegerType::const_iterator it = mapUnsignedInteger_.find(key);
279 if (it != mapUnsignedInteger_.end()) return "int";
280 }
281 // Fourth, try to retrieve the value from the Bool map
282 {
283 Collection<String> keys;
284 for (MapBoolType::const_iterator it = mapBool_.begin(); it != mapBool_.end(); ++it)
285 {
286 keys.add(it->first);
287 }
288 MapBoolType::const_iterator it = mapBool_.find(key);
289 if (it != mapBool_.end()) return "bool";
290 }
291 throw InternalException(HERE) << "Key '" << key << "' is missing in ResourceMap.";
292 }
293
get(const String & key) const294 String ResourceMap::get(const String & key) const
295 {
296 // First, try to retrieve the value from the String map
297 {
298 MapStringType::const_iterator it = mapString_.find(key);
299 if (it != mapString_.end()) return it->second;
300 }
301 // Second, try to retrieve the value from the Scalar map
302 {
303 MapScalarType::const_iterator it = mapScalar_.find(key);
304 if (it != mapScalar_.end()) return (OSS() << it->second);
305 }
306 // Third, try to retrieve the value from the UnsignedInteger map
307 {
308 MapUnsignedIntegerType::const_iterator it = mapUnsignedInteger_.find(key);
309 if (it != mapUnsignedInteger_.end()) return (OSS() << it->second);
310 }
311 // Fourth, try to retrieve the value from the Bool map
312 {
313 MapBoolType::const_iterator it = mapBool_.find(key);
314 if (it != mapBool_.end()) return (OSS() << it->second);
315 }
316 throw InternalException(HERE) << "Key '" << key << "' is missing in ResourceMap.";
317 }
318
hasKey(const String & key) const319 Bool ResourceMap::hasKey(const String & key) const
320 {
321 return ((mapString_.find(key) != mapString_.end())
322 || (mapScalar_.find(key) != mapScalar_.end())
323 || (mapUnsignedInteger_.find(key) != mapUnsignedInteger_.end())
324 || (mapBool_.find(key) != mapBool_.end()));
325 }
326
removeKey(const String & key)327 void ResourceMap::removeKey(const String & key)
328 {
329 if (!hasKey(key))
330 throw InternalException(HERE) << "Key '" << key << "' is missing in ResourceMap";
331
332 String keyType(getType(key));
333 if (keyType == "str")
334 mapString_.erase(mapString_.find(key));
335 if (keyType == "float")
336 mapScalar_.erase(mapScalar_.find(key));
337 if (keyType == "int")
338 mapUnsignedInteger_.erase(mapUnsignedInteger_.find(key));
339 if (keyType == "bool")
340 mapBool_.erase(mapBool_.find(key));
341 }
342
getAsString(const String & key) const343 String ResourceMap::getAsString(const String & key) const
344 {
345 MapStringType::const_iterator it = mapString_.find(key);
346 if (it != mapString_.end()) return it->second;
347 throw InternalException(HERE) << "Key '" << key << "' is missing in ResourceMap as a String.";
348 }
349
getAsScalar(const String & key) const350 Scalar ResourceMap::getAsScalar(const String & key) const
351 {
352 MapScalarType::const_iterator it = mapScalar_.find(key);
353 if (it != mapScalar_.end()) return it->second;
354 throw InternalException(HERE) << "Key '" << key << "' is missing in ResourceMap as a Scalar.";
355 }
356
getAsUnsignedInteger(const String & key) const357 UnsignedInteger ResourceMap::getAsUnsignedInteger(const String & key) const
358 {
359 MapUnsignedIntegerType::const_iterator it = mapUnsignedInteger_.find(key);
360 if (it != mapUnsignedInteger_.end()) return it->second;
361 throw InternalException(HERE) << "Key '" << key << "' is missing in ResourceMap as an UnsignedInteger.";
362 }
363
getAsBool(const String & key) const364 Bool ResourceMap::getAsBool(const String & key) const
365 {
366 MapBoolType::const_iterator it = mapBool_.find(key);
367 if (it != mapBool_.end()) return it->second;
368 throw InternalException(HERE) << "Key '" << key << "' is missing in ResourceMap as a Bool.";
369 }
370
371 /* Get the size of the map */
getSize() const372 UnsignedInteger ResourceMap::getSize() const
373 {
374 return getStringSize() + getScalarSize() + getUnsignedIntegerSize() + getBoolSize();
375 }
376
getStringSize() const377 UnsignedInteger ResourceMap::getStringSize() const
378 {
379 return mapString_.size();
380 }
381
getScalarSize() const382 UnsignedInteger ResourceMap::getScalarSize() const
383 {
384 return mapScalar_.size();
385 }
386
getUnsignedIntegerSize() const387 UnsignedInteger ResourceMap::getUnsignedIntegerSize() const
388 {
389 return mapUnsignedInteger_.size();
390 }
391
getBoolSize() const392 UnsignedInteger ResourceMap::getBoolSize() const
393 {
394 return mapBool_.size();
395 }
396
397 /* Method for setting information into the resource map */
set(const String & key,const String & value)398 void ResourceMap::set(const String & key, const String & value)
399 {
400 // First, check if the given key is already defined in one of the maps
401 // to convert it to the correct type
402 // First, try to retrieve the value from the String map
403 {
404 MapStringType::iterator it = mapString_.find(key);
405 if (it != mapString_.end())
406 {
407 it->second = value;
408 return;
409 }
410 }
411 // Second, try to retrieve the value from the Scalar map
412 {
413 MapScalarType::iterator it = mapScalar_.find(key);
414 if (it != mapScalar_.end())
415 {
416 Scalar scalarValue = -1.0;
417 std::istringstream iss(value);
418 iss >> scalarValue;
419 it->second = scalarValue;
420 return;
421 }
422 }
423 // Third, try to retrieve the value from the UnsignedInteger map
424 {
425 MapUnsignedIntegerType::iterator it = mapUnsignedInteger_.find(key);
426 if (it != mapUnsignedInteger_.end())
427 {
428 UnsignedInteger unsignedIntegerValue = 0;
429 std::istringstream iss(value);
430 iss >> unsignedIntegerValue;
431 it->second = unsignedIntegerValue;
432 return;
433 }
434 }
435 // Fourth, try to retrieve the value from the Bool map
436 {
437 MapBoolType::iterator it = mapBool_.find(key);
438 if (it != mapBool_.end())
439 {
440 Bool boolValue = false;
441 // First, try to recover the bool value from the "true" or "false" strings
442 if (value == "true") boolValue = true;
443 else if (value == "false") boolValue = false;
444 // Second, try to recover the bool from the litteral value
445 else
446 {
447 std::istringstream iss(value);
448 iss >> boolValue;
449 }
450 it->second = boolValue;
451 }
452 }
453 throw InternalException(HERE) << "Key '" << key << "' is missing in ResourceMap.";
454 }
455
setAsString(const String & key,const String & value)456 void ResourceMap::setAsString(const String & key, const String & value)
457 {
458 MapStringType::iterator it = mapString_.find(key);
459 if (it == mapString_.end())
460 throw InternalException(HERE) << "Key '" << key << "' is missing in ResourceMap as a String.";
461 it->second = value;
462 }
463
setAsBool(const String & key,const Bool value)464 void ResourceMap::setAsBool(const String & key, const Bool value)
465 {
466 MapBoolType::iterator it = mapBool_.find(key);
467 if (it == mapBool_.end())
468 throw InternalException(HERE) << "Key '" << key << "' is missing in ResourceMap as a Bool.";
469 it->second = value;
470 }
471
setAsUnsignedInteger(const String & key,const UnsignedInteger value)472 void ResourceMap::setAsUnsignedInteger(const String & key, const UnsignedInteger value)
473 {
474 MapUnsignedIntegerType::iterator it = mapUnsignedInteger_.find(key);
475 if (it == mapUnsignedInteger_.end())
476 throw InternalException(HERE) << "Key '" << key << "' is missing in ResourceMap as an UnsignedInteger.";
477 it->second = value;
478 }
479
setAsScalar(const String & key,const Scalar value)480 void ResourceMap::setAsScalar(const String & key, const Scalar value)
481 {
482 MapScalarType::iterator it = mapScalar_.find(key);
483 if (it == mapScalar_.end())
484 throw InternalException(HERE) << "Key '" << key << "' is missing in ResourceMap as a Scalar.";
485 it->second = value;
486 }
487
addAsString(const String & key,const String & value)488 void ResourceMap::addAsString(const String & key, const String & value)
489 {
490 if (mapString_.find(key) != mapString_.end())
491 throw InternalException(HERE) << "Key '" << key << "' is already in ResourceMap as a String.";
492 mapString_[key] = value;
493 }
494
addAsBool(const String & key,const Bool value)495 void ResourceMap::addAsBool(const String & key, const Bool value)
496 {
497 if (mapBool_.find(key) != mapBool_.end())
498 throw InternalException(HERE) << "Key '" << key << "' is already in ResourceMap as a Bool.";
499 mapBool_[key] = value;
500 }
501
addAsUnsignedInteger(const String & key,const UnsignedInteger value)502 void ResourceMap::addAsUnsignedInteger(const String & key, const UnsignedInteger value)
503 {
504 if (mapUnsignedInteger_.find(key) != mapUnsignedInteger_.end())
505 throw InternalException(HERE) << "Key '" << key << "' is already in ResourceMap as an UnsignedInteger.";
506 mapUnsignedInteger_[key] = value;
507 }
508
addAsScalar(const String & key,const Scalar value)509 void ResourceMap::addAsScalar(const String & key, const Scalar value)
510 {
511 if (mapScalar_.find(key) != mapScalar_.end())
512 throw InternalException(HERE) << "Key '" << key << "' is already in ResourceMap as a Scalar.";
513 mapScalar_[key] = value;
514 }
515
516 /* Update the ResourceMap with information from the configuration file */
readConfigurationFile(const FileName & configurationFile)517 void ResourceMap::readConfigurationFile(const FileName & configurationFile)
518 {
519 #if defined OPENTURNS_HAVE_LIBXML2
520 LOGINFO(OSS() << "Using configuration file " << configurationFile);
521
522 // Open the configuration file and load it in a DOM document for later analysis
523 XMLDoc document(configurationFile);
524
525 // Check it is an OpenTURNS' one
526 xmlNodePtr rootElt = xmlDocGetRootElement(document);
527 if (rootElt == NULL) throw ConfigurationFileParsingException(HERE) << "Wrapper file has no root element" << configurationFile;
528 if (xmlStrcmp(rootElt->name, reinterpret_cast<const xmlChar *>(RootElementName)))
529 throw ConfigurationFileParsingException(HERE) << "Wrapper file " << configurationFile
530 << " has an invalid root element (" << rootElt->name << ")"
531 << " at line " << xmlGetLineNo(rootElt);
532
533
534 // Walk through the DOM document to read the data
535 if (rootElt && rootElt->children)
536 {
537 for (xmlNodePtr current = rootElt->children; current; current = current->next)
538 {
539 if (XML::IsElement(current))
540 {
541 const String key = XML::ToString(current->name);
542 // Try to get a String value
543 {
544 String value = XML::GetAttributeByName(current, XMLTag_value_str);
545 if (value.size() > 0)
546 {
547 mapString_[key] = value;
548 break;
549 }
550 } // String
551 // Try to get a Scalar value
552 {
553 String value = XML::GetAttributeByName(current, XMLTag_value_float);
554 if (value.size() > 0)
555 {
556 Scalar scalarValue = -1.0;
557 std::istringstream iss(value);
558 iss >> scalarValue;
559 mapScalar_[key] = scalarValue;
560 break;
561 }
562 } // Scalar
563 // Try to get an UnsignedInteger value
564 {
565 String value = XML::GetAttributeByName(current, XMLTag_value_int);
566 if (value.size() > 0)
567 {
568 UnsignedInteger unsignedIntegerValue = 0;
569 std::istringstream iss(value);
570 iss >> unsignedIntegerValue;
571 mapUnsignedInteger_[key] = unsignedIntegerValue;
572 break;
573 }
574 } // UnsignedInteger
575 // Try to get a Bool value
576 {
577 String value = XML::GetAttributeByName( current, XMLTag_value_bool);
578 if (value.size() > 0)
579 {
580 Bool boolValue = false;
581 // First, try to recover the bool value from the "true" or "false" strings
582 if (value == "true") boolValue = true;
583 else if (value == "false") boolValue = false;
584 // Second, try to recover the bool from the litteral value
585 else
586 {
587 std::istringstream iss(value);
588 iss >> boolValue;
589 }
590 mapBool_[key] = boolValue;
591 break;
592 }
593 } // Bool
594 } // if XML::IsElement
595 } // for xmlNodePtr
596 } // if root
597 #else
598 (void)configurationFile;
599 LOGWARN(OSS() << "Cannot parse configuration file due to lacking xml support");
600 #endif
601 }
602
603
604 /* Find the configuration file in specific path (see Path class for algorithm) */
findConfigurationFile() const605 FileName ResourceMap::findConfigurationFile() const
606 {
607 Path::DirectoryList dirList = Path::GetConfigDirectoryList();
608 return Path::FindFileByNameInDirectoryList(ConfigurationFileName, dirList);
609 }
610
611 /* Load the configuration file */
loadConfigurationFile()612 void ResourceMap::loadConfigurationFile()
613 {
614 try
615 {
616 readConfigurationFile(findConfigurationFile());
617 }
618 catch (FileNotFoundException &)
619 {
620 LOGWARN(OSS() << "The configuration file has not been found, using default parameters.");
621 }
622 }
623
624 /* Load the configuration defined at installation time */
loadDefaultConfiguration()625 void ResourceMap::loadDefaultConfiguration()
626 {
627 #ifndef _WIN32
628 addAsString("Path-TemporaryDirectory", "/tmp");
629 addAsUnsignedInteger("TBB-ThreadsNumber", sysconf(_SC_NPROCESSORS_CONF));
630 #else
631 addAsString("Path-TemporaryDirectory", "TEMP");
632 UnsignedInteger numberOfProcessors = 0;
633 std::istringstream iss(getenv("NUMBER_OF_PROCESSORS"));
634 iss >> numberOfProcessors;
635 addAsUnsignedInteger("TBB-ThreadsNumber", numberOfProcessors);
636 #endif
637 if (const char* env_num_threads = std::getenv("OPENTURNS_NUM_THREADS"))
638 {
639 try
640 {
641 setAsUnsignedInteger("TBB-ThreadsNumber", std::stoi(env_num_threads));
642 }
643 catch (const std::invalid_argument &)
644 {
645 throw InternalException(HERE) << "OPENTURNS_NUM_THREADS must be an integer, got " << env_num_threads;
646 }
647 }
648 addAsUnsignedInteger("Cache-MaxSize", 1024);
649
650 // Os parameters
651 addAsBool("Os-CreateProcess", "false");
652 addAsBool("Os-RemoveFiles", "true");
653 addAsUnsignedInteger("OS-DeleteTimeout", 2);
654
655 // XMLStorageManager parameters
656 addAsUnsignedInteger("XMLStorageManager-DefaultCompressionLevel", 0);
657
658 // Collection parameters
659 addAsUnsignedInteger("Collection-size-visible-in-str-from", 10);
660
661 // SpecFunc parameters
662 addAsScalar("SpecFunc-Precision", 2.0e-16);
663 addAsUnsignedInteger("SpecFunc-MaximumIteration", 1000);
664
665 // SymbolicParser parameters
666 addAsString("SymbolicParser-Backend", SYMBOLICPARSER_DEFAULT_BACKEND);
667
668 // DesignProxy parameters
669 addAsUnsignedInteger("DesignProxy-DefaultCacheSize", 16777216);// 2^24=16777216=128 Mio
670
671 // KFold parameters
672 addAsUnsignedInteger("KFold-DefaultK", 10);
673
674 // KFold parameters
675 addAsBool("KFoldSplitter-Randomize", false);
676
677 // BlendedStep parameters //
678 addAsScalar("BlendedStep-DefaultEta", 1.0);
679
680 // CenteredFiniteDifferenceGradient parameters //
681 addAsScalar("CenteredFiniteDifferenceGradient-DefaultEpsilon", 1.0e-5);
682
683 // CenteredFiniteDifferenceHessian parameters //
684 addAsScalar("CenteredFiniteDifferenceHessian-DefaultEpsilon", 1.0e-4);
685
686 // NonCenteredFiniteDifferenceGradient parameters //
687 addAsScalar("NonCenteredFiniteDifferenceGradient-DefaultEpsilon", 1.0e-7);
688
689 // PiecewiseHermiteEvaluation parameters //
690 addAsScalar("PiecewiseHermiteEvaluation-EpsilonRegular", 1.0e-12);
691
692 // PiecewiseLinearEvaluation parameters //
693 addAsScalar("PiecewiseLinearEvaluation-EpsilonRegular", 1.0e-12);
694
695 // UniVariatePolynomialImplementation parameters //
696 addAsUnsignedInteger("UniVariatePolynomial-SmallDegree", 400);
697
698 // Pie parameters //
699 addAsScalar("Pie-HorizontalMargin", 0.3);
700 addAsScalar("Pie-LabelThreshold", 0.02);
701 addAsScalar("Pie-VerticalMargin", 0.1);
702
703 // DrawableImplementation parameters //
704 addAsScalar("Drawable-DefaultLineWidth", 1.0);
705 addAsString("Drawable-AlternativePattern", "S");
706 addAsString("Drawable-DefaultColor", "blue");
707 addAsString("Drawable-DefaultFillStyle", "solid");
708 addAsString("Drawable-DefaultLineStyle", "solid");
709 addAsString("Drawable-DefaultPaletteName", "Tableau");
710 addAsString("Drawable-DefaultPattern", "s");
711 addAsString("Drawable-DefaultPointStyle", "plus");
712 addAsString("Drawable-DefaultSurfaceColor", "white");
713 addAsString("Drawable-NoSpecifiedLabel", "");
714 addAsUnsignedInteger("Drawable-DataThreshold", 2000);
715 addAsUnsignedInteger("Drawable-DefaultPalettePhase", 12);
716
717 // Text drawable
718 addAsScalar("Text-DefaultTextSize", 0.75);
719
720 // GraphImplementation parameters //
721 #ifdef R_EXECUTABLE
722 addAsString("Graph-RExecutableCommand", R_EXECUTABLE);
723 #else
724 addAsString("Graph-RExecutableCommand", "");
725 #endif
726 addAsScalar("Graph-DefaultHorizontalMargin", 0.05);
727 addAsScalar("Graph-DefaultLegendFontSize", 1.0);
728 addAsScalar("Graph-DefaultVerticalMargin", 0.05);
729 addAsString("Graph-NoSpecifiedLabel", "");
730 addAsUnsignedInteger("Graph-DefaultHeight", 480);
731 addAsUnsignedInteger("Graph-DefaultWidth", 640);
732
733 // Contour parameters //
734 addAsUnsignedInteger("Contour-DefaultLevelsNumber", 10);
735
736 // IntervalMesher parameters //
737 addAsBool("IntervalMesher-UseDiamond", false);
738
739 // PointToPointEvaluation parameters //
740 addAsUnsignedInteger("PointToPointEvaluation-BlockSize", 256);
741
742 // FieldToPointConnection parameters //
743 addAsUnsignedInteger("FieldToPointConnection-BlockSize", 256);
744
745 // SQP parameters //
746 addAsScalar("SQP-DefaultOmega", 1.0e-4);
747 addAsScalar("SQP-DefaultSmooth", 1.2);
748 addAsScalar("SQP-DefaultTau", 0.5);
749
750 // TNC parameters //
751 addAsScalar("TNC-DefaultAccuracy", 1.0e-4);
752 addAsScalar("TNC-DefaultEta", 0.25);
753 addAsScalar("TNC-DefaultFmin", 1.0);
754 addAsScalar("TNC-DefaultRescale", 1.3);
755 addAsScalar("TNC-DefaultStepmx", 10.0);
756 addAsUnsignedInteger("TNC-DefaultMaxCGit", 50);
757
758 // AbdoRackwitz parameters //
759 addAsScalar("AbdoRackwitz-DefaultOmega", 1.0e-4);
760 addAsScalar("AbdoRackwitz-DefaultSmooth", 1.2);
761 addAsScalar("AbdoRackwitz-DefaultTau", 0.5);
762
763 // MultiStart parameters //
764 addAsBool("MultiStart-KeepResults", true);
765
766 // OptimizationAlgorithm parameters //
767 addAsScalar("OptimizationAlgorithm-DefaultLevelValue", 0.0);
768 addAsScalar("OptimizationAlgorithm-DefaultMaximumAbsoluteError", 1.0e-5);
769 addAsScalar("OptimizationAlgorithm-DefaultMaximumConstraintError", 1.0e-5);
770 addAsScalar("OptimizationAlgorithm-DefaultMaximumRelativeError", 1.0e-5);
771 addAsScalar("OptimizationAlgorithm-DefaultMaximumResidualError", 1.0e-5);
772 addAsUnsignedInteger("OptimizationAlgorithm-DefaultMaximumEvaluationNumber", 1000);
773 addAsUnsignedInteger("OptimizationAlgorithm-DefaultMaximumIterationNumber", 100);
774
775 // Dlib optimization parameters //
776 addAsScalar("Dlib-DefaultInitialTrustRegionRadius", 1.0);
777 addAsScalar("Dlib-DefaultWolfeRho", 0.01);
778 addAsScalar("Dlib-DefaultWolfeSigma", 0.9);
779 addAsUnsignedInteger("Dlib-DefaultMaxLineSearchIterations", 100);
780 addAsUnsignedInteger("Dlib-DefaultMaxSize", 10);
781
782
783 // EfficientGlobalOptimization parameters //
784 addAsScalar("EfficientGlobalOptimization-DefaultAEITradeoff", 1.0);
785 addAsScalar("EfficientGlobalOptimization-DefaultCorrelationLengthFactor", 1.0);
786 addAsScalar("EfficientGlobalOptimization-DefaultImprovementFactor", 0.0);
787 addAsUnsignedInteger("EfficientGlobalOptimization-DefaultMultiStartExperimentSize", 100);
788 addAsUnsignedInteger("EfficientGlobalOptimization-DefaultMultiStartNumber", 20);
789 addAsUnsignedInteger("EfficientGlobalOptimization-DefaultParameterEstimationPeriod", 1);
790
791 // Cobyla parameters //
792 addAsScalar("Cobyla-DefaultRhoBeg", 0.1);
793
794 // SolverImplementation parameters //
795 addAsScalar("Solver-DefaultAbsoluteError", 1.0e-5);
796 addAsScalar("Solver-DefaultRelativeError", 1.0e-5);
797 addAsScalar("Solver-DefaultResidualError", 0.0 );
798 addAsUnsignedInteger("Solver-DefaultMaximumFunctionEvaluation", 100);
799
800 // GaussKronrod parameters //
801 addAsScalar("GaussKronrod-MaximumError", 1.0e-12);
802 addAsUnsignedInteger("GaussKronrod-MaximumSubIntervals", 100);
803
804 // GaussLegendre parameters //
805 addAsUnsignedInteger("GaussLegendre-DefaultMarginalIntegrationPointsNumber", 64);
806
807 // FejerAlgorithm parameters //
808 addAsUnsignedInteger("FejerAlgorithm-DefaultMarginalIntegrationPointsNumber", 64);
809
810 // IteratedQuadrature parameters //
811 addAsScalar("IteratedQuadrature-MaximumError", 1.0e-7);
812 addAsUnsignedInteger("IteratedQuadrature-MaximumSubIntervals", 32);
813
814 // Fehlberg parameters //
815 addAsScalar("Fehlberg-InitialStep", 1.0e-7);
816 addAsScalar("Fehlberg-LocalPrecision", 1.0e-10);
817 addAsScalar("Fehlberg-MinimalStep", 1.0e-7);
818 addAsUnsignedInteger("Fehlberg-DefaultOrder", 4);
819
820 // KarhunenLoeveQuadratureAlgorithm parameters //
821 addAsScalar("KarhunenLoeveQuadratureAlgorithm-RegularizationFactor", 0.0);
822
823 // KarhunenLoeveSVDAlgorithm parameters //
824 addAsBool("KarhunenLoeveSVDAlgorithm-UseRandomSVD", false);
825 addAsString("KarhunenLoeveSVDAlgorithm-RandomSVDVariant", "Halko2010");
826 addAsUnsignedInteger("KarhunenLoeveSVDAlgorithm-Halko2011Margin", 2);
827 addAsUnsignedInteger("KarhunenLoeveSVDAlgorithm-Halko2011Iterations", 2);
828 addAsUnsignedInteger("KarhunenLoeveSVDAlgorithm-RandomSVDMaximumRank", 1000);
829
830 // KarhunenLoeveP1Algorithm parameters //
831 addAsScalar("KarhunenLoeveP1Algorithm-RegularizationFactor", 0.0);
832 addAsString("KarhunenLoeveP1Algorithm-CovarianceMatrixStorage", "DENSE");
833 addAsString("KarhunenLoeveP1Algorithm-EigenvaluesSolver", "LAPACK");
834
835 // AdaptiveStieltjesAlgorithm parameters //
836 addAsScalar("AdaptiveStieltjesAlgorithm-MaximumError", 1.0e-12);
837 addAsUnsignedInteger("AdaptiveStieltjesAlgorithm-MaximumSubIntervalsBetweenRoots", 64);
838
839 // LinearModelTest parameters //
840 addAsScalar("LinearModelTest-DefaultHarrisonMcCabeBreakpoint", 0.5);
841 addAsScalar("LinearModelTest-DefaultLevel", 0.05);
842 addAsString("LinearModelTest-DefaultDurbinWatsonHypothesis", "Equal");
843 addAsUnsignedInteger("LinearModelTest-DefaultHarrisonMcCabeSimulationSize", 1000);
844
845 // Last parameters //
846 addAsUnsignedInteger("Last-DefaultMaximumSize", 65536);
847
848 // Compact parameters //
849 addAsUnsignedInteger("Compact-DefaultHalfMaximumSize", 1024);
850
851 // FaureSequence parameters //
852 addAsUnsignedInteger("FaureSequence-InitialSeed", 1);
853
854 // HaltonSequence parameters //
855 addAsString("HaltonSequence-Scrambling", "NONE");
856 addAsUnsignedInteger("HaltonSequence-InitialSeed", 1);
857
858 // HaselgroveSequence parameters //
859 addAsUnsignedInteger("HaselgroveSequence-InitialSeed", 1);
860
861 // LowDiscrepancySequence parameters //
862 addAsUnsignedInteger("LowDiscrepancySequence-ScramblingSeed", 0);
863
864 // ReverseHaltonSequence parameters //
865 addAsUnsignedInteger("ReverseHaltonSequence-InitialSeed", 1);
866
867 // SobolSequence parameters //
868 addAsUnsignedInteger("SobolSequence-InitialSeed", 1);
869
870 // SobolIndicesExperiment parameters //
871 addAsString("SobolIndicesExperiment-SamplingMethod", "MonteCarlo");
872
873 // SobolIndicesAlgorithm parameters //
874 addAsBool("SobolIndicesAlgorithm-DefaultUseAsymptoticDistribution", false);
875 addAsScalar("SobolIndicesAlgorithm-DefaultBootstrapConfidenceLevel", 0.95);
876 addAsUnsignedInteger("SobolIndicesAlgorithm-DefaultBlockSize", 1);
877 addAsUnsignedInteger("SobolIndicesAlgorithm-DefaultBootstrapSize", 100);
878
879 // FAST parameters //
880 addAsUnsignedInteger("FAST-DefaultInterferenceFactor", 4);
881 addAsUnsignedInteger("FAST-DefaultResamplingSize", 1);
882
883 // RandomGenerator parameters //
884 addAsUnsignedInteger("RandomGenerator-InitialSeed", 0);
885
886 // CovarianceModelImplementation parameters //
887 addAsScalar("CovarianceModel-DefaultNuggetFactor", 1e-12);
888 addAsScalar("CovarianceModel-DefaultTMax", 5.0);
889 addAsScalar("CovarianceModel-DefaultTMin", -5.0);
890 addAsUnsignedInteger("CovarianceModel-DefaultPointNumber", 129);
891
892 // SpectralModel parameters //
893 addAsScalar("SpectralModel-DefaultMaximumFrequency", 5.0);
894 addAsScalar("SpectralModel-DefaultMinimumFrequency", -5.0);
895 addAsUnsignedInteger("SpectralModel-DefaultFrequencyNumber", 129);
896
897 // FieldImplementation parameters //
898 addAsBool("Field-AutomaticScaling", true);
899 addAsScalar("Field-ArrowRatio", 0.01);
900 addAsScalar("Field-ArrowScaling", 1.0);
901 addAsUnsignedInteger("Field-LevelNumber", 30);
902
903 // SampleImplementation parameters
904 addAsString("Sample-CSVFileSeparator", ";");
905 addAsString("Sample-CommentMarkers", "#");
906 addAsUnsignedInteger("Sample-PrintEllipsisSize", 3);
907 addAsUnsignedInteger("Sample-PrintEllipsisThreshold", 1000);
908 addAsUnsignedInteger("Sample-SmallKendallTau", 23);
909
910 // DomainImplementation parameters
911 addAsScalar("Domain-SmallVolume", 1.0e-12);
912
913 // Mesh parameters
914 addAsBool("Mesh-BackfaceCulling", false);
915 addAsScalar("Mesh-AmbientFactor", 0.1);
916 addAsScalar("Mesh-DiffuseFactor", 0.7);
917 addAsScalar("Mesh-Shininess", 100.0);
918 addAsScalar("Mesh-SpecularFactor", 0.2);
919 addAsScalar("Mesh-VertexEpsilon", 1.0e-6);
920 addAsScalar("Mesh-CoordinateEpsilon", 1.0e-14);
921 addAsUnsignedInteger("Mesh-LargeSize", 5000);
922 addAsBool("Mesh-CheckValidity", false);
923
924 // BoundingVolumeHierarchy parameters
925 addAsString("BoundingVolumeHierarchy-Strategy", "Mean");
926 addAsUnsignedInteger("BoundingVolumeHierarchy-BinNumber", 50);
927
928 // EnclosingSimplexAlgorithm parameters
929 addAsUnsignedInteger("EnclosingSimplexAlgorithm-LargeDimension", 5);
930
931 // Matrix parameters
932 addAsUnsignedInteger("Matrix-size-visible-in-str-from", 5);
933
934 // Tensor parameters
935 addAsUnsignedInteger("Tensor-size-visible-in-str-from", 5);
936
937 // Tensor parameters
938 addAsUnsignedInteger("ComplexTensor-size-visible-in-str-from", 6);
939
940 // MatrixImplementation parameters //
941 addAsScalar("Matrix-DefaultSmallPivot", 1.0e-7 );
942 addAsScalar("Matrix-LargestEigenValueRelativeError", 1.0e-4);
943 addAsScalar("Matrix-SymmetryThreshold", 1.0e-12);
944 addAsUnsignedInteger("Matrix-LargestEigenValueIterations", 50);
945
946 // BernsteinCopulaFactory parameters //
947 addAsScalar("BernsteinCopulaFactory-alpha", 1.0);
948 addAsString("BernsteinCopulaFactory-BinNumberSelectionMethod", "LogLikelihood");
949 addAsUnsignedInteger("BernsteinCopulaFactory-kFraction", 2);
950 addAsUnsignedInteger("BernsteinCopulaFactory-MaxM", 1);
951 addAsUnsignedInteger("BernsteinCopulaFactory-MinM", 2);
952 addAsUnsignedInteger("BernsteinCopulaFactory-SamplingSize", 10000);
953
954 // BurrFactory parameters //
955 addAsScalar("BurrFactory-AbsolutePrecision", 1.0e-12);
956 addAsScalar("BurrFactory-RelativePrecision", 1.0e-12);
957 addAsScalar("BurrFactory-ResidualPrecision", 1.0e-12);
958 addAsUnsignedInteger("BurrFactory-MaximumIteration", 10);
959
960 // ConditionalDistribution parameters //
961 addAsUnsignedInteger("ConditionalDistribution-MarginalIntegrationNodesNumber", 256);
962 addAsUnsignedInteger("ConditionalDistribution-MaximumIntegrationNodesNumber", 100000);
963 addAsString("ConditionalDistribution-ContinuousDiscretizationMethod", "GaussProduct");
964
965 // ComposedDistribution parameters //
966 addAsBool("ComposedDistribution-UseGenericCovarianceAlgorithm", false);
967
968 // CompositeDistribution parameters //
969 addAsScalar("CompositeDistribution-SolverEpsilon", 1.0e-14);
970 addAsUnsignedInteger("CompositeDistribution-StepNumber", 256);
971
972 // Dirichlet parameters //
973 addAsUnsignedInteger("Dirichlet-DefaultIntegrationSize", 50);
974 addAsUnsignedInteger("Dirichlet-DefaultSamplingSize", 500000);
975
976 // DirichletFactory parameters //
977 addAsScalar("DirichletFactory-ParametersEpsilon", 1.0e-12);
978 addAsUnsignedInteger("DirichletFactory-MaximumIteration", 10);
979
980 // DiscreteCompoundDistribution parameters //
981 addAsScalar("DiscreteCompoundDistribution-DefaultEpsilon", 1.0e-12);
982
983 // ExtremeValueCopula parameters //
984 addAsBool("ExtremeValueCopula-CheckPickandFunction", true);
985 addAsUnsignedInteger("ExtremeValueCopula-CheckGridSize", 11);
986
987 // FisherSnedecorFactory parameters //
988 addAsScalar("FisherSnedecorFactory-D1LowerBound", 1.0e-2);
989 addAsScalar("FisherSnedecorFactory-D2LowerBound", 1.0e-2);
990
991 // FrechetFactory parameters //
992 addAsScalar("FrechetFactory-BoundMargin", 10.0);
993
994 // GeneralizedExtremeValue parameters //
995 addAsScalar("GeneralizedExtremeValue-XiThreshold", 1.0e-6);
996
997 // GeneralizedParetoFactory parameters //
998 addAsScalar("GeneralizedParetoFactory-MaximumAbsoluteError", 1.0e-10);
999 addAsScalar("GeneralizedParetoFactory-MaximumConstraintError", 1.0e-10);
1000 addAsScalar("GeneralizedParetoFactory-MaximumObjectiveError", 1.0e-10);
1001 addAsScalar("GeneralizedParetoFactory-MaximumRelativeError", 1.0e-10);
1002 addAsUnsignedInteger("GeneralizedParetoFactory-MaximumEvaluationNumber", 1000);
1003 addAsUnsignedInteger("GeneralizedParetoFactory-SmallSize", 20);
1004
1005 // InverseNormalFactory parameters //
1006 addAsString("InverseNormalFactory-Method", "MLE");
1007
1008 // KernelMixture parameters //
1009 addAsUnsignedInteger("KernelMixture-LargeSize", 20);
1010 addAsUnsignedInteger("KernelMixture-PDFCDFDiscretization", 1000);
1011 addAsUnsignedInteger("KernelMixture-SmallSize", 50);
1012
1013 // KernelSmoothing parameters //
1014 addAsScalar("KernelSmoothing-AbsolutePrecision", 0.0);
1015 addAsScalar("KernelSmoothing-CutOffPlugin", 5.0);
1016 addAsScalar("KernelSmoothing-RelativePrecision", 1.0e-5);
1017 addAsScalar("KernelSmoothing-ResidualPrecision", 1.0e-10);
1018 addAsUnsignedInteger("KernelSmoothing-BinNumber", 1024);
1019 addAsUnsignedInteger("KernelSmoothing-MaximumIteration", 50);
1020 addAsUnsignedInteger("KernelSmoothing-SmallSize", 250);
1021
1022 // LogNormal parameters //
1023 addAsScalar("LogNormal-CharacteristicFunctionSmallSigmaThreshold", 0.2);
1024 addAsUnsignedInteger("LogNormal-CharacteristicFunctionIntegrationNodes", 256);
1025
1026 // LogNormalFactory parameters //
1027 addAsScalar("LogNormalFactory-AbsolutePrecision", 1.0e-12);
1028 addAsScalar("LogNormalFactory-RelativePrecision", 1.0e-12);
1029 addAsScalar("LogNormalFactory-ResidualPrecision", 1.0e-12);
1030 addAsUnsignedInteger("LogNormalFactory-EstimationMethod", 0);
1031 addAsUnsignedInteger("LogNormalFactory-MaximumIteration", 50);
1032
1033 // Meixner parameters //
1034 addAsScalar("MeixnerDistribution-MaximumAbsoluteError", 1.0e-12);
1035 addAsScalar("MeixnerDistribution-MaximumConstraintError", 1.0e-12);
1036 addAsScalar("MeixnerDistribution-MaximumObjectiveError", 1.0e-12);
1037 addAsScalar("MeixnerDistribution-MaximumRelativeError", 1.0e-12);
1038 addAsUnsignedInteger("MeixnerDistribution-CDFDiscretization", 10000);
1039 addAsUnsignedInteger("MeixnerDistribution-CDFIntegrationNodesNumber", 32);
1040
1041 // Mixture parameters //
1042 addAsScalar("Mixture-SmallWeight", 1.0e-12);
1043 addAsUnsignedInteger("Mixture-LargeSize", 20);
1044 addAsUnsignedInteger("Mixture-PDFCDFDiscretization", 1000);
1045 addAsUnsignedInteger("Mixture-SmallSize", 50);
1046
1047 // Multinomial parameters //
1048 addAsScalar("Multinomial-eta", 1.0e-9);
1049 addAsScalar("Multinomial-smallA", 10.0);
1050
1051 // NegativeBinomialFactory parameters //
1052 addAsScalar("NegativeBinomialFactory-AbsolutePrecision", 1.0e-12);
1053 addAsScalar("NegativeBinomialFactory-RelativePrecision", 1.0e-12);
1054 addAsScalar("NegativeBinomialFactory-ResidualPrecision", 1.0e-12);
1055 addAsUnsignedInteger("NegativeBinomialFactory-MaximumIteration", 50);
1056
1057 // Normal parameters //
1058 addAsScalar("Normal-MaximumCDFEpsilon", 5.0e-6);
1059 addAsScalar("Normal-MinimumCDFEpsilon", 5.0e-2);
1060 addAsUnsignedInteger("Normal-MarginalIntegrationNodesNumber", 16);
1061 addAsUnsignedInteger("Normal-MaximumNumberOfPoints", 10000000);
1062 addAsUnsignedInteger("Normal-MinimumNumberOfPoints", 100000);
1063 addAsUnsignedInteger("Normal-SmallDimension", 6);
1064
1065 // ParetoFactory parameters //
1066 addAsScalar("ParetoFactory-AlphaUpperBound", 1000.0);
1067
1068 // ProductDistribution parameters //
1069 addAsScalar("ProductDistribution-LargeCharacteristicFunctionArgument", 10.0);
1070
1071 // RiceFactory parameters //
1072 addAsScalar("RiceFactory-AbsolutePrecision", 1.0e-12);
1073 addAsScalar("RiceFactory-RelativePrecision", 1.0e-12);
1074 addAsScalar("RiceFactory-ResidualPrecision", 1.0e-12);
1075 addAsUnsignedInteger("RiceFactory-MaximumIteration", 10);
1076
1077 // TrapezoidalFactory parameters //
1078 addAsScalar("TrapezoidalFactory-RhoBeg", 0.1);
1079 addAsScalar("TrapezoidalFactory-RhoEnd", 1.0e-5);
1080 addAsUnsignedInteger("TrapezoidalFactory-MaximumIteration", 2000);
1081
1082 // TruncatedDistribution parameters //
1083 addAsScalar("TruncatedDistribution-DefaultThresholdRealization", 0.5);
1084
1085 // TruncatedNormalFactory parameters //
1086 addAsScalar("TruncatedNormalFactory-SigmaLowerBound", 1.0e-4);
1087
1088 // MaximumLikelihoodFactory parameters //
1089 addAsScalar("MaximumLikelihoodFactory-MaximumAbsoluteError", 1.0e-10);
1090 addAsScalar("MaximumLikelihoodFactory-MaximumConstraintError", 1.0e-10);
1091 addAsScalar("MaximumLikelihoodFactory-MaximumObjectiveError", 1.0e-10);
1092 addAsScalar("MaximumLikelihoodFactory-MaximumRelativeError", 1.0e-10);
1093 addAsString("MaximumLikelihoodFactory-DefaultOptimizationAlgorithm", "TNC");
1094 addAsUnsignedInteger("MaximumLikelihoodFactory-MaximumEvaluationNumber", 1000);
1095
1096 // MethodOfMomentsFactory parameters //
1097 addAsScalar("MethodOfMomentsFactory-MaximumAbsoluteError", 1.0e-10);
1098 addAsScalar("MethodOfMomentsFactory-MaximumConstraintError", 1.0e-10);
1099 addAsScalar("MethodOfMomentsFactory-MaximumObjectiveError", 1.0e-10);
1100 addAsScalar("MethodOfMomentsFactory-MaximumRelativeError", 1.0e-10);
1101 addAsUnsignedInteger("MethodOfMomentsFactory-MaximumEvaluationNumber", 1000);
1102
1103 // Student parameters //
1104 addAsScalar("Student-MaximumCDFEpsilon", 5.0e-6);
1105 addAsScalar("Student-MinimumCDFEpsilon", 5.0e-2);
1106 addAsUnsignedInteger("Student-MarginalIntegrationNodesNumber", 16);
1107 addAsUnsignedInteger("Student-MaximumNumberOfPoints", 10000000);
1108 addAsUnsignedInteger("Student-MinimumNumberOfPoints", 100000);
1109 addAsUnsignedInteger("Student-SmallDimension", 6);
1110
1111 // StudentFactory parameters //
1112 addAsScalar("StudentFactory-NuMax", 1.0e3);
1113
1114 // NonCentralStudent parameters //
1115 addAsUnsignedInteger("NonCentralStudent-CDFAlgo", 0);
1116
1117 // UserDefined parameters //
1118 addAsUnsignedInteger("UserDefined-SmallSize", 10000);
1119
1120 // VonMisesFactory parameters //
1121 addAsScalar("VonMisesFactory-AbsolutePrecision", 1.0e-12);
1122 addAsScalar("VonMisesFactory-RelativePrecision", 1.0e-12);
1123 addAsScalar("VonMisesFactory-ResidualPrecision", 1.0e-12);
1124 addAsUnsignedInteger("VonMisesFactory-MaximumIteration", 10);
1125
1126 // AliMikhailHaqCopulaFactory parameters //
1127 addAsScalar("AliMikhailHaqCopulaFactory-ThetaEpsilon", 1.0e-14);
1128
1129 // FrankCopulaFactory parameters //
1130 addAsScalar("FrankCopulaFactory-AbsolutePrecision", 1.0e-14);
1131 addAsScalar("FrankCopulaFactory-RelativePrecision", 1.0e-14);
1132 addAsScalar("FrankCopulaFactory-ResidualPrecision", 1.0e-14);
1133 addAsUnsignedInteger("FrankCopulaFactory-MaximumIteration", 100);
1134
1135 // RandomMixture parameters //
1136 addAsBool("RandomMixture-SimplifyAtoms", true);
1137 addAsScalar("RandomMixture-DefaultAlpha", 5.0);
1138 addAsScalar("RandomMixture-DefaultBeta", 8.5);
1139 addAsScalar("RandomMixture-DefaultCDFEpsilon", 1.0e-10);
1140 addAsScalar("RandomMixture-DefaultPDFEpsilon", 1.0e-10);
1141 addAsScalar("RandomMixture-GraphCDFEpsilon", 1.0e-5);
1142 addAsScalar("RandomMixture-GraphPDFEpsilon", 1.0e-5);
1143 addAsUnsignedInteger("RandomMixture-DefaultBlockMax", 16);
1144 addAsUnsignedInteger("RandomMixture-DefaultBlockMin", 3);
1145 addAsUnsignedInteger("RandomMixture-DefaultMaxSize", 65536);
1146 addAsUnsignedInteger("RandomMixture-MarginalIntegrationNodesNumber", 128);
1147 addAsUnsignedInteger("RandomMixture-MaximumIntegrationNodesNumber", 1024);
1148 addAsUnsignedInteger("RandomMixture-MaximumSupportSize", 2048);
1149 addAsUnsignedInteger("RandomMixture-ProjectionDefaultSize", 25);
1150 addAsUnsignedInteger("RandomMixture-SmallSize", 100);
1151
1152 // Evaluation parameters //
1153 addAsScalar("Evaluation-ParameterEpsilon", 1.0e-7);
1154 addAsUnsignedInteger("Evaluation-DefaultPointNumber", 129);
1155
1156 // DualLinearCombinationEvaluation //
1157 addAsScalar("DualLinearCombinationEvaluation-SmallCoefficient", 0.0);
1158
1159 // LinearCombinationEvaluation //
1160 addAsScalar("LinearCombinationEvaluation-SmallCoefficient", 0.0);
1161
1162 // DistFunc parameters //
1163 addAsScalar("DistFunc-Precision", 1.0e-14);
1164 addAsUnsignedInteger("DistFunc-MaximumIteration", 5000);
1165
1166 // KFactor parameters //
1167 addAsScalar("KFactor-Precision", 1.0e-8);
1168 addAsUnsignedInteger("KFactor-DefaultIntegrationNodesNumber", 256);
1169 addAsUnsignedInteger("KFactor-MaximumIteration", 32);
1170
1171 // RootStrategyImplementation parameters //
1172 addAsScalar("RootStrategy-DefaultMaximumDistance", 8.0);
1173 addAsScalar("RootStrategy-DefaultStepSize", 1.0);
1174
1175 // SimulationAlgorithm parameters //
1176 addAsScalar("SimulationAlgorithm-DefaultMaximumCoefficientOfVariation", 1.0e-1);
1177 addAsScalar("SimulationAlgorithm-DefaultMaximumStandardDeviation", 0.0);
1178 addAsUnsignedInteger("SimulationAlgorithm-DefaultBlockSize", 1);
1179 addAsUnsignedInteger("SimulationAlgorithm-DefaultMaximumOuterSampling", 1000);
1180
1181 // ProbabilitySimulationResult parameters //
1182 addAsBool("ProbabilitySimulationResult-CheckPositiveVariance", false);
1183 addAsScalar("ProbabilitySimulationResult-DefaultConfidenceLevel", 0.95);
1184
1185 // ExpectationSimulationAlgorithm parameters //
1186 addAsString("ExpectationSimulationAlgorithm-DefaultCoefficientOfVariationCriterionType", "MAX");
1187 addAsString("ExpectationSimulationAlgorithm-DefaultStandardDeviationCriterionType", "NONE");
1188
1189 // SobolSimulationAlgorithm parameters //
1190 addAsScalar("SobolSimulationAlgorithm-DefaultIndexQuantileLevel", 0.05);
1191 addAsScalar("SobolSimulationAlgorithm-DefaultIndexQuantileEpsilon", 1e-2);
1192 addAsUnsignedInteger("SobolSimulationAlgorithm-DefaultBlockSize", 1000);
1193 addAsUnsignedInteger("SobolSimulationAlgorithm-DefaultBatchSize", 1);
1194
1195 // SimulationSensitivityAnalysis parameters //
1196 addAsUnsignedInteger("SimulationSensitivityAnalysis-DefaultSampleMargin", 400);
1197
1198 // SubsetSampling parameters //
1199 addAsScalar("SubsetSampling-DefaultBetaMin", 2.0);
1200 addAsScalar("SubsetSampling-DefaultConditionalProbability", 0.1);
1201 addAsScalar("SubsetSampling-DefaultProposalRange", 2.0);
1202 addAsUnsignedInteger("SubsetSampling-DefaultMaximumOuterSampling", 10000);
1203
1204 // DirectionalSampling parameters //
1205 addAsUnsignedInteger("DirectionalSampling-MeanContributionIntegrationNodesNumber", 255);
1206
1207 // AdaptiveDirectionalStratification parameters //
1208 addAsScalar("AdaptiveDirectionalStratification-DefaultGamma", 0.5);
1209 addAsUnsignedInteger("AdaptiveDirectionalStratification-DefaultMaximumStratificationDimension", 3);
1210 addAsUnsignedInteger("AdaptiveDirectionalStratification-DefaultNumberOfSteps", 2);
1211
1212 // AnalyticalResult parameters //
1213 addAsScalar("AnalyticalResult-DefaultWidth", 1.0);
1214 addAsUnsignedInteger("AnalyticalResult-MeanPointIntegrationNodesNumber", 255);
1215
1216 // SystemFORM parameters //
1217 addAsScalar("SystemFORM-MaximalScaling", 1.0e5);
1218 addAsScalar("SystemFORM-StartingScaling", 1.0e-13);
1219
1220 // MultiFORM parameters //
1221 addAsScalar("MultiFORM-DefaultGamma", 1.1);
1222 addAsScalar("MultiFORM-DefaultDelta", 0.75);
1223 addAsUnsignedInteger("MultiFORM-DefaultMaximumDesignPointsNumber", 4);
1224
1225 // StrongMaximumTest parameters //
1226 addAsScalar("StrongMaximumTest-DefaultDeltaPrecision", 1.0e-7);
1227 addAsScalar("StrongMaximumTest-Epsilon", 1.0e-10);
1228
1229 // CleaningStrategy parameters //
1230 addAsScalar("CleaningStrategy-DefaultSignificanceFactor", 1.0e-4);
1231 addAsUnsignedInteger("CleaningStrategy-DefaultMaximumSize", 20);
1232
1233 // MetaModelAlgorithm parameters //
1234 addAsScalar("MetaModelAlgorithm-PValueThreshold", 1.0e-3);
1235 addAsString("MetaModelAlgorithm-ModelSelectionCriterion", "BIC");
1236 addAsString("MetaModelAlgorithm-NonParametricModel", "Histogram");
1237
1238 // FunctionalChaosAlgorithm parameters //
1239 addAsScalar("FunctionalChaosAlgorithm-DefaultMaximumResidual", 1.0e-6);
1240 addAsScalar("FunctionalChaosAlgorithm-QNorm", 0.5);
1241 addAsUnsignedInteger("FunctionalChaosAlgorithm-LargeSampleSize", 10000);
1242 addAsUnsignedInteger("FunctionalChaosAlgorithm-MaximumTotalDegree", 10);
1243 addAsUnsignedInteger("FunctionalChaosAlgorithm-SmallSampleSize", 1000);
1244
1245 // FunctionalChaosSobolIndices parameters //
1246 addAsScalar("FunctionalChaosSobolIndices-VariancePartThreshold", 1.0e-2);
1247
1248 // LinearModelAlgorithm parameters //
1249 addAsString("LinearModelAlgorithm-DecompositionMethod", "QR");
1250 addAsUnsignedInteger("LinearModelAnalysis-Identifiers", 3);
1251
1252 // LinearModelStepwiseAlgorithm parameters //
1253 addAsScalar("LinearModelStepwiseAlgorithm-Penalty", 2.0);
1254 addAsUnsignedInteger("LinearModelStepwiseAlgorithm-MaximumIterationNumber", 1000);
1255
1256 // GeneralLinearModelAlgorithm parameters //
1257 addAsBool("GeneralLinearModelAlgorithm-KeepCovariance", true);
1258 addAsBool("GeneralLinearModelAlgorithm-OptimizeParameters", true);
1259 addAsBool("GeneralLinearModelAlgorithm-UnbiasedVariance", true);
1260 addAsBool("GeneralLinearModelAlgorithm-UseAnalyticalAmplitudeEstimate", true);
1261 addAsScalar("GeneralLinearModelAlgorithm-DefaultOptimizationLowerBound", 1.0e-2);
1262 addAsScalar("GeneralLinearModelAlgorithm-DefaultOptimizationScaleFactor", 2.0);
1263 addAsScalar("GeneralLinearModelAlgorithm-DefaultOptimizationUpperBound", 1.0e2);
1264 addAsScalar("GeneralLinearModelAlgorithm-MaximalScaling", 1.0e5);
1265 addAsScalar("GeneralLinearModelAlgorithm-MeanEpsilon", 1.0e-12);
1266 addAsScalar("GeneralLinearModelAlgorithm-StartingScaling", 1.0e-13);
1267 addAsString("GeneralLinearModelAlgorithm-DefaultOptimizationAlgorithm", "TNC");
1268 addAsString("GeneralLinearModelAlgorithm-LinearAlgebra", "LAPACK");
1269
1270 // KrigingAlgorithm parameters //
1271 addAsScalar("KrigingAlgorithm-MaximalScaling", 1.0e5);
1272 addAsScalar("KrigingAlgorithm-StartingScaling", 1.0e-13);
1273 addAsString("KrigingAlgorithm-LinearAlgebra", "LAPACK");
1274
1275 // SquaredExponential parameters //
1276 addAsScalar("SquaredExponential-DefaultTheta", 1.0);
1277
1278 // AbsoluteExponential parameters //
1279 addAsScalar("AbsoluteExponential-DefaultTheta", 1.0);
1280
1281 // GeneralizedExponential parameters //
1282 addAsScalar("GeneralizedExponential-DefaultTheta", 1.0);
1283
1284 // MaternModel parameters //
1285 addAsScalar("MaternModel-DefaultNu", 1.5);
1286 addAsScalar("MaternModel-DefaultTheta", 1.0);
1287
1288 // WeightedExperimentImplementation parameters //
1289 addAsUnsignedInteger("WeightedExperiment-DefaultSize", 100);
1290
1291 // GaussProductExperiment parameters //
1292 addAsUnsignedInteger("GaussProductExperiment-DefaultMarginalDegree", 5);
1293
1294 // HyperbolicAnisotropicEnumerateFunction parameters //
1295 addAsScalar("HyperbolicAnisotropicEnumerateFunction-DefaultQ", 0.4);
1296
1297 // MarginalTransformationEvaluation parameters //
1298 addAsBool("MarginalTransformationEvaluation-Simplify", true);
1299 addAsScalar("MarginalTransformationEvaluation-DefaultTailThreshold", 0.99);
1300 addAsScalar("MarginalTransformationEvaluation-ParametersEpsilon", 1.0e-14);
1301
1302 // DistributionImplementation parameters //
1303 addAsBool("Distribution-MinimumVolumeLevelSetBySampling", false);
1304 addAsBool("Distribution-Parallel", true);
1305 addAsBool("Distribution-ScaleColorsDiscretePDF", true);
1306 addAsBool("Distribution-ShowSupportDiscretePDF", true);
1307 addAsBool("Distribution-UseCovarianceAdaptiveAlgorithm", true);
1308 addAsScalar("Distribution-QMin", 0.15);
1309 addAsScalar("Distribution-QMax", 0.85);
1310 addAsScalar("Distribution-DefaultQuantileEpsilon", 1.0e-12);
1311 addAsScalar("Distribution-DefaultPDFEpsilon", 1.0e-14);
1312 addAsScalar("Distribution-DefaultCDFEpsilon", 1.0e-14);
1313 addAsScalar("Distribution-DiscreteDrawPDFScaling", 0.25);
1314 addAsString("Distribution-EntropySamplingMethod", "MonteCarlo");
1315 addAsUnsignedInteger("Distribution-CharacteristicFunctionBlockMax", 20);
1316 addAsUnsignedInteger("Distribution-CharacteristicFunctionNMax", 1000000);
1317 addAsUnsignedInteger("Distribution-DefaultIntegrationNodesNumber", 255);
1318 addAsUnsignedInteger("Distribution-DefaultLevelNumber", 10);
1319 addAsUnsignedInteger("Distribution-DefaultPointNumber", 129);
1320 addAsUnsignedInteger("Distribution-DefaultQuantileCacheSize", 128);
1321 addAsUnsignedInteger("Distribution-DefaultQuantileIteration", 100);
1322 addAsUnsignedInteger("Distribution-EntropySamplingSize", 524288);
1323 addAsUnsignedInteger("Distribution-MinimumVolumeLevelSetSamplingSize", 16384);
1324 addAsUnsignedInteger("Distribution-SmallDimensionEntropy", 3);
1325 addAsString("Distribution-RoughnessSamplingMethod", "MonteCarlo");
1326 addAsUnsignedInteger("Distribution-RoughnessSamplingSize", 524288);
1327 addAsUnsignedInteger("Distribution-SmallDimensionRoughness", 3);
1328
1329 // ContinuousDistribution parameters //
1330 addAsUnsignedInteger("ContinuousDistribution-DefaultIntegrationNodesNumber", 256);
1331
1332 // DiscreteDistribution parameters //
1333 addAsScalar("DiscreteDistribution-SupportEpsilon", 1.0e-14);
1334
1335 // DiscreteMarkovChain parameters //
1336 addAsString("DiscreteMarkovChain-DOTArcColor", "black");
1337 addAsString("DiscreteMarkovChain-DOTLayout", "dot");
1338 addAsString("DiscreteMarkovChain-DOTNodeColor", "black");
1339 addAsString("DiscreteMarkovChain-DOTNodeShape", "oval");
1340 addAsScalar("DiscreteMarkovChain-ProbabilitySumPrecision", 1.0e-6);
1341
1342 // DistributionFactoryImplementation parameters //
1343 addAsScalar("DistributionFactory-BootstrapErrorTolerance", 0.1);
1344 addAsUnsignedInteger("DistributionFactory-DefaultBootstrapSize", 100);
1345
1346 // OrderStatisticsMarginalChecker //
1347 addAsScalar("OrderStatisticsMarginalChecker-OptimizationEpsilon", 1.0e-7);
1348 addAsUnsignedInteger("OrderStatisticsMarginalChecker-QuantileIteration", 100);
1349
1350 // MaximumEntropyOrderStatisticsDistribution //
1351 addAsBool("MaximumEntropyOrderStatisticsDistribution-CheckMarginals", true);
1352 addAsBool("MaximumEntropyOrderStatisticsDistribution-UseApproximation", false);
1353 addAsScalar("MaximumEntropyOrderStatisticsDistribution-SupportShift", 1.0e-15);
1354 addAsUnsignedInteger("MaximumEntropyOrderStatisticsDistribution-CDFIntegrationNodesNumber", 16);
1355 addAsUnsignedInteger("MaximumEntropyOrderStatisticsDistribution-ExponentialFactorDiscretization", 100);
1356 addAsUnsignedInteger("MaximumEntropyOrderStatisticsDistribution-MaximumApproximationSubdivision", 2);
1357 addAsUnsignedInteger("MaximumEntropyOrderStatisticsDistribution-MaximumQuantileIteration", 10);
1358
1359 // HMatrix parameters //
1360 addAsBool("HMatrix-ForceSequential", false);
1361 addAsScalar("HMatrix-AdmissibilityFactor", 100.0);
1362 addAsScalar("HMatrix-AssemblyEpsilon", 1.0e-4);
1363 addAsScalar("HMatrix-LargestEigenValueRelativeError", 1.0e-1);
1364 addAsScalar("HMatrix-RecompressionEpsilon", 1.0e-4);
1365 addAsScalar("HMatrix-ValidationError", 0.0);
1366 addAsString("HMatrix-ClusteringAlgorithm", "median");
1367 addAsString("HMatrix-CompressionMethod", "AcaRandom");
1368 addAsUnsignedInteger("HMatrix-FactorizationIterations", 10);
1369 addAsUnsignedInteger("HMatrix-LargestEigenValueIterations", 10);
1370 addAsUnsignedInteger("HMatrix-MaxLeafSize", 250);
1371 addAsUnsignedInteger("HMatrix-ValidationDump", 0);
1372 addAsUnsignedInteger("HMatrix-ValidationRerun", 0);
1373
1374 // GaussianProcess parameters //
1375 addAsScalar("GaussianProcess-MaximalScaling", 1.0e5);
1376 addAsScalar("GaussianProcess-StartingScaling", 1.0e-13);
1377 addAsUnsignedInteger("GaussianProcess-GibbsMaximumIteration", 100);
1378
1379 // SpectralGaussianProcess parameters //
1380 addAsScalar("SpectralGaussianProcess-StartingScaling", 1.0e-13);
1381 addAsScalar("SpectralGaussianProcess-MaximalScaling", 1.0e5);
1382 addAsUnsignedInteger("SpectralGaussianProcess-CholeskyCacheSize", 16384);
1383
1384 // WhittleFactory parameters //
1385 addAsScalar("WhittleFactory-DefaultRhoBeg", 0.1);
1386 addAsScalar("WhittleFactory-DefaultRhoEnd", 1.0e-10);
1387 addAsScalar("WhittleFactory-DefaultStartingPointScale", 1.0);
1388 addAsScalar("WhittleFactory-RootEpsilon", 1.0e-6);
1389 addAsUnsignedInteger("WhittleFactory-DefaultMaximumEvaluationNumber", 2000);
1390
1391 // BoxCoxFactory parameters //
1392 addAsScalar("BoxCoxFactory-DefaultRhoBeg", 0.1);
1393 addAsScalar("BoxCoxFactory-DefaultRhoEnd", 1.0e-10);
1394 addAsUnsignedInteger("BoxCoxFactory-DefaultMaximumEvaluationNumber", 2000);
1395 addAsUnsignedInteger("BoxCoxFactory-DefaultPointNumber", 201);
1396
1397 // VisualTest parameters //
1398 addAsUnsignedInteger("VisualTest-KendallPlot-MonteCarloSize", 100);
1399
1400 // CalibrationStrategyImplementation parameters //
1401 addAsScalar("CalibrationStrategy-DefaultExpansionFactor", 1.2);
1402 addAsScalar("CalibrationStrategy-DefaultLowerBound", 0.117); // = 0.5 * 0.234
1403 addAsScalar("CalibrationStrategy-DefaultShrinkFactor", 0.8);
1404 addAsScalar("CalibrationStrategy-DefaultUpperBound", 0.468); // = 2.0 * 0.234
1405 addAsUnsignedInteger("CalibrationStrategy-DefaultCalibrationStep", 100);
1406
1407 // MCMC parameters //
1408 addAsUnsignedInteger("MCMC-DefaultBurnIn", 0);
1409 addAsUnsignedInteger("MCMC-DefaultThinning", 1);
1410
1411 // GaussianLinearCalibration parameters //
1412 addAsString("GaussianLinearCalibration-Method", "QR");
1413
1414 // LinearLeastSquaresCalibration parameters //
1415 addAsScalar("LinearLeastSquaresCalibration-Regularization", 1e-12);
1416 addAsString("LinearLeastSquaresCalibration-Method", "QR");
1417
1418 // NonLinearLeastSquaresCalibration parameters //
1419 addAsUnsignedInteger("NonLinearLeastSquaresCalibration-BootstrapSize", 100);
1420 addAsUnsignedInteger("NonLinearLeastSquaresCalibration-MultiStartSize", 100);
1421
1422 // GaussianNonLinearCalibration parameters //
1423 addAsUnsignedInteger("GaussianNonLinearCalibration-BootstrapSize", 100);
1424 addAsUnsignedInteger("GaussianNonLinearCalibration-MultiStartSize", 100);
1425
1426 // ARMA parameters //
1427 addAsScalar("ARMA-MeanEpsilon", 1.0e-14);
1428
1429 // ARMALikelihoodFactory parameters //
1430 addAsScalar("ARMALikelihoodFactory-DefaultRhoBeg", 0.01);
1431 addAsScalar("ARMALikelihoodFactory-DefaultRhoEnd", 1.0e-10);
1432 addAsScalar("ARMALikelihoodFactory-DefaultStartingPointScale", 1.0);
1433 addAsScalar("ARMALikelihoodFactory-MaximalScaling", 1.0e5);
1434 addAsScalar("ARMALikelihoodFactory-RootEpsilon", 1.0e-6);
1435 addAsScalar("ARMALikelihoodFactory-StartingScaling", 1.0e-13);
1436 addAsUnsignedInteger("ARMALikelihoodFactory-DefaultMaximumEvaluationNumber", 10000);
1437
1438 // FittingTest parameters //
1439 addAsBool("FittingTest-ChiSquaredCheckSample", true);
1440 addAsScalar("FittingTest-LillieforsPrecision", 0.01);
1441 addAsUnsignedInteger("FittingTest-ChiSquaredMinimumBinCount", 5);
1442 addAsUnsignedInteger("FittingTest-LillieforsMinimumSamplingSize", 10);
1443 addAsUnsignedInteger("FittingTest-LillieforsMaximumSamplingSize", 100000);
1444
1445 // PenalizedLeastSquaresAlgorithm parameters //
1446 addAsBool("PenalizedLeastSquaresAlgorithm-UseNormal", false);
1447
1448 // LeastSquaresMetaModelSelection parameters //
1449 addAsScalar("LeastSquaresMetaModelSelection-ErrorThreshold", 0.0);
1450 addAsScalar("LeastSquaresMetaModelSelection-MaximumError", 0.5);
1451 addAsScalar("LeastSquaresMetaModelSelection-MaximumErrorFactor", 2.0);
1452 addAsString("LeastSquaresMetaModelSelection-DecompositionMethod", "SVD");
1453
1454 // SparseMethod parameters //
1455 addAsScalar("SparseMethod-ErrorThreshold", 1.0e-3);
1456 addAsScalar("SparseMethod-MaximumErrorFactor", 2.0);
1457
1458 // CholeskyMethod parameters //
1459 addAsUnsignedInteger("CholeskyMethod-LargeCase", 128);
1460
1461 // Classifier parameters //
1462 addAsBool("Classifier-Parallel", true);
1463
1464 // TensorApproximationAlgorithm parameters //
1465 addAsScalar("TensorApproximationAlgorithm-DefaultMaximumRadiusError", 1.0e-5);
1466 addAsScalar("TensorApproximationAlgorithm-DefaultMaximumResidualError", 1.0e-5);
1467 addAsString("TensorApproximationAlgorithm-DecompositionMethod", "SVD");
1468 addAsString("TensorApproximationAlgorithm-Method", "GreedyRankOne");
1469 addAsUnsignedInteger("TensorApproximationAlgorithm-DefaultMaximumAlternatingLeastSquaresIteration", 100);
1470
1471 // viewer.View parameters //
1472 addAsString("View-ImageFormat", "png");
1473 }
1474
reload()1475 void ResourceMap::reload()
1476 {
1477 std::vector<String> allKeys(getKeys());
1478 for (UnsignedInteger i = 0; i < allKeys.size(); ++ i)
1479 removeKey(allKeys[i]);
1480 loadDefaultConfiguration();
1481 loadConfigurationFile();
1482 }
1483
1484 /** Get the list of keys associated to a class */
findKeys(const String & substr)1485 std::vector<String> ResourceMap::findKeys(const String & substr)
1486 {
1487 std::vector<String> allKeys(getKeys());
1488 std::vector<String> result;
1489 for (UnsignedInteger i = 0; i < allKeys.size(); ++ i)
1490 {
1491 if(allKeys[i].find(substr) != std::string::npos)
1492 result.push_back(allKeys[i]);
1493 }
1494 return result;
1495 }
1496
1497 /* String converter */
__repr__() const1498 String ResourceMap::__repr__() const
1499 {
1500 // First, build a global map to sort keys
1501 MapStringType globalMap(mapString_);
1502 for (MapScalarType::const_iterator it = mapScalar_.begin(); it != mapScalar_.end(); ++it)
1503 globalMap[it->first] = Get(it->first);
1504 for (MapUnsignedIntegerType::const_iterator it = mapUnsignedInteger_.begin(); it != mapUnsignedInteger_.end(); ++it)
1505 globalMap[it->first] = Get(it->first);
1506 for (MapBoolType::const_iterator it = mapBool_.begin(); it != mapBool_.end(); ++it)
1507 globalMap[it->first] = Get(it->first);
1508 OSS oss;
1509 oss << "ResourceMap={";
1510 const char * separator = "\n ";
1511 for(MapStringType::const_iterator it = globalMap.begin(); it != globalMap.end(); ++it, separator = ",\n ")
1512 oss << separator
1513 << it->first << " => " << it->second;
1514 oss << "\n}";
1515 return oss;
1516 }
1517
getKeys() const1518 std::vector<String> ResourceMap::getKeys() const
1519 {
1520 // Initialize with the string keys
1521 std::vector<String> keys(getStringKeys());
1522 // Append the scalar keys
1523 {
1524 std::vector<String> scalarKeys(getScalarKeys());
1525 keys.insert(keys.end(), scalarKeys.begin(), scalarKeys.end());
1526 }
1527 // Append the unsigned integer keys
1528 {
1529 std::vector<String> unsignedIntegerKeys(getUnsignedIntegerKeys());
1530 keys.insert(keys.end(), unsignedIntegerKeys.begin(), unsignedIntegerKeys.end());
1531 }
1532 // Append the bool keys
1533 {
1534 std::vector<String> boolKeys(getBoolKeys());
1535 keys.insert(keys.end(), boolKeys.begin(), boolKeys.end());
1536 }
1537 // Then sort the keys
1538 std::sort(keys.begin(), keys.end());
1539 return keys;
1540 }
1541
getStringKeys() const1542 std::vector<String> ResourceMap::getStringKeys() const
1543 {
1544 std::vector<String> keys;
1545 for(MapStringType::const_iterator it = mapString_.begin(); it != mapString_.end(); ++it)
1546 {
1547 keys.push_back(it->first);
1548 }
1549 return keys;
1550 }
1551
getBoolKeys() const1552 std::vector<String> ResourceMap::getBoolKeys() const
1553 {
1554 std::vector<String> keys;
1555 for(MapBoolType::const_iterator it = mapBool_.begin(); it != mapBool_.end(); ++it)
1556 {
1557 keys.push_back(it->first);
1558 }
1559 return keys;
1560 }
1561
getScalarKeys() const1562 std::vector<String> ResourceMap::getScalarKeys() const
1563 {
1564 std::vector<String> keys;
1565 for(MapScalarType::const_iterator it = mapScalar_.begin(); it != mapScalar_.end(); ++it)
1566 {
1567 keys.push_back(it->first);
1568 }
1569 return keys;
1570 }
1571
getUnsignedIntegerKeys() const1572 std::vector<String> ResourceMap::getUnsignedIntegerKeys() const
1573 {
1574 std::vector<String> keys;
1575 for(MapUnsignedIntegerType::const_iterator it = mapUnsignedInteger_.begin(); it != mapUnsignedInteger_.end(); ++it)
1576 {
1577 keys.push_back(it->first);
1578 }
1579 return keys;
1580 }
1581
1582 /*
1583 * @fn std::ostream & operator <<(std::ostream & os, const ResourceMap & obj)
1584 * @brief Output stream converter
1585 * @param os A STL output stream resourceMap
1586 * @param obj The resourceMap read by \em os
1587 * @return A reference to \em os
1588 *
1589 * Operator << converts the ResourceMap object to an output stream
1590 * so it is easy to show the content of the resourceMap.
1591 */
operator <<(std::ostream & os,const MutexLockSingleton<ResourceMap> & obj)1592 std::ostream & operator <<(std::ostream & os, const MutexLockSingleton<ResourceMap> & obj)
1593 {
1594 return os << obj.lock().__repr__();
1595 }
1596
operator <<(OStream & OS,const MutexLockSingleton<ResourceMap> & obj)1597 OStream & operator <<(OStream & OS, const MutexLockSingleton<ResourceMap> & obj)
1598 {
1599 return OS << obj.lock().__repr__();
1600 }
1601
1602
1603
1604
1605
1606 END_NAMESPACE_OPENTURNS
1607