MyraMath
Options.h
Go to the documentation of this file.
1 // ========================================================================= //
2 // This file is part of MyraMath, copyright (c) 2014-2019 by Ryan A Chilton //
3 // and distributed by MyraCore, LLC. See LICENSE.txt for license terms. //
4 // ========================================================================= //
5 
6 #ifndef MYRAMATH_PDENSE_OPTIONS_H
7 #define MYRAMATH_PDENSE_OPTIONS_H
8 
14 #include <myramath/MYRAMATH_EXPORT.h>
15 
16 // For conversion to jobgraph::Options
17 #include <myramath/jobgraph/Options.h>
19 
20 namespace myra {
21 namespace pdense {
22 
24 class MYRAMATH_EXPORT Options
25  {
26  public:
27 
30 
32  int nthreads;
33 
36 
38  int blocksize;
39 
41  Options();
42 
44  static Options create()
45  { return Options(); }
46 
48  Options& set_threading_layer(int in_threading_layer)
49  { threading_layer = jobgraph::Options::sanitize(in_threading_layer); return *this; }
50 
51  Options& set_nthreads(int in_nthreads)
52  { nthreads = in_nthreads; return *this; }
53 
54  Options& set_progress(const ProgressMeter& in_progress)
55  { progress = in_progress; return *this; }
56 
57  Options& set_blocksize(int in_blocksize)
58  { blocksize = in_blocksize; return *this; }
59 
61  operator jobgraph::Options() const
62  { return jobgraph::Options::create().set_threading_layer(threading_layer).set_nthreads(nthreads).set_progress(progress); }
63 
64  };
65 
66 } // namespace pdense
67 } // namespace myra
68 
69 #endif
Definition: Options.h:21
int blocksize
Desired blocksize.
Definition: Options.h:38
Options pack for routines in /pdense.
Definition: Options.h:24
static Options create()
Named constructor idiom, creates default options.
Definition: Options.h:44
Options & set_threading_layer(int in_threading_layer)
Named constructor idiom, setters.
Definition: Options.h:48
Definition: syntax.dox:1
Interface for measuring progress via callbacks. Wraps an underlying polymorphic ProgressMeterBase.
Definition: ProgressMeter.h:55
Returns maximum number of threads, by probing the environment for MYRAMATH_NUM_THREADS.
int nthreads
How many threads to use?
Definition: Options.h:32
ProgressMeter progress
Enable progress meter?
Definition: Options.h:35
int threading_layer
Which threading_layer to use? (See JOBGRAPH::Options)
Definition: Options.h:29
Options & set_threading_layer(int in_threading_layer)
Named constructor idiom, setters.
Definition: Options.h:48
static Options create()
Named constructor idiom, creates default options.
Definition: Options.h:44