diff --git a/docs/YASK-tutorial.pdf b/docs/YASK-tutorial.pdf index 50a179ea..3fe86048 100644 Binary files a/docs/YASK-tutorial.pdf and b/docs/YASK-tutorial.pdf differ diff --git a/docs/api/doxygen_config.txt b/docs/api/doxygen_config.txt index fa86b95a..e043c6e7 100644 --- a/docs/api/doxygen_config.txt +++ b/docs/api/doxygen_config.txt @@ -494,7 +494,7 @@ NUM_PROC_THREADS = 1 # Possible values are: YES, NO, DATETIME and DATE. # The default value is: NO. -TIMESTAMP = YES +TIMESTAMP = NO #--------------------------------------------------------------------------- # Build related configuration options diff --git a/docs/api/html/annotated.html b/docs/api/html/annotated.html index adb112ca..adbf3297 100644 --- a/docs/api/html/annotated.html +++ b/docs/api/html/annotated.html @@ -138,7 +138,7 @@ diff --git a/docs/api/html/classes.html b/docs/api/html/classes.html index 97cd639c..db58d769 100644 --- a/docs/api/html/classes.html +++ b/docs/api/html/classes.html @@ -100,7 +100,7 @@ diff --git a/docs/api/html/classyask_1_1command__line__parser-members.html b/docs/api/html/classyask_1_1command__line__parser-members.html index d873a391..3f64b3d1 100644 --- a/docs/api/html/classyask_1_1command__line__parser-members.html +++ b/docs/api/html/classyask_1_1command__line__parser-members.html @@ -95,7 +95,7 @@ diff --git a/docs/api/html/classyask_1_1command__line__parser.html b/docs/api/html/classyask_1_1command__line__parser.html index 854dd523..c329c2e1 100644 --- a/docs/api/html/classyask_1_1command__line__parser.html +++ b/docs/api/html/classyask_1_1command__line__parser.html @@ -220,7 +220,7 @@

diff --git a/docs/api/html/classyask_1_1command__line__parser_1_1bool__option-members.html b/docs/api/html/classyask_1_1command__line__parser_1_1bool__option-members.html index a30d1a47..c2974eea 100644 --- a/docs/api/html/classyask_1_1command__line__parser_1_1bool__option-members.html +++ b/docs/api/html/classyask_1_1command__line__parser_1_1bool__option-members.html @@ -96,7 +96,7 @@ diff --git a/docs/api/html/classyask_1_1command__line__parser_1_1bool__option.html b/docs/api/html/classyask_1_1command__line__parser_1_1bool__option.html index 6facfd6f..b0f0ffa7 100644 --- a/docs/api/html/classyask_1_1command__line__parser_1_1bool__option.html +++ b/docs/api/html/classyask_1_1command__line__parser_1_1bool__option.html @@ -265,7 +265,7 @@

diff --git a/docs/api/html/classyask_1_1command__line__parser_1_1double__option-members.html b/docs/api/html/classyask_1_1command__line__parser_1_1double__option-members.html index 37dedbeb..2a09cd21 100644 --- a/docs/api/html/classyask_1_1command__line__parser_1_1double__option-members.html +++ b/docs/api/html/classyask_1_1command__line__parser_1_1double__option-members.html @@ -96,7 +96,7 @@ diff --git a/docs/api/html/classyask_1_1command__line__parser_1_1double__option.html b/docs/api/html/classyask_1_1command__line__parser_1_1double__option.html index 7cf9971a..dddf4ab1 100644 --- a/docs/api/html/classyask_1_1command__line__parser_1_1double__option.html +++ b/docs/api/html/classyask_1_1command__line__parser_1_1double__option.html @@ -265,7 +265,7 @@

diff --git a/docs/api/html/classyask_1_1command__line__parser_1_1idx__option-members.html b/docs/api/html/classyask_1_1command__line__parser_1_1idx__option-members.html index f0ab2a99..9338601f 100644 --- a/docs/api/html/classyask_1_1command__line__parser_1_1idx__option-members.html +++ b/docs/api/html/classyask_1_1command__line__parser_1_1idx__option-members.html @@ -96,7 +96,7 @@ diff --git a/docs/api/html/classyask_1_1command__line__parser_1_1idx__option.html b/docs/api/html/classyask_1_1command__line__parser_1_1idx__option.html index 45f1f51e..eee8fb75 100644 --- a/docs/api/html/classyask_1_1command__line__parser_1_1idx__option.html +++ b/docs/api/html/classyask_1_1command__line__parser_1_1idx__option.html @@ -265,7 +265,7 @@

diff --git a/docs/api/html/classyask_1_1command__line__parser_1_1int__option-members.html b/docs/api/html/classyask_1_1command__line__parser_1_1int__option-members.html index 78f24fc6..e119845d 100644 --- a/docs/api/html/classyask_1_1command__line__parser_1_1int__option-members.html +++ b/docs/api/html/classyask_1_1command__line__parser_1_1int__option-members.html @@ -96,7 +96,7 @@ diff --git a/docs/api/html/classyask_1_1command__line__parser_1_1int__option.html b/docs/api/html/classyask_1_1command__line__parser_1_1int__option.html index bec24409..e22cbfbf 100644 --- a/docs/api/html/classyask_1_1command__line__parser_1_1int__option.html +++ b/docs/api/html/classyask_1_1command__line__parser_1_1int__option.html @@ -265,7 +265,7 @@

diff --git a/docs/api/html/classyask_1_1command__line__parser_1_1option__base-members.html b/docs/api/html/classyask_1_1command__line__parser_1_1option__base-members.html index 74599f9d..3cf11d55 100644 --- a/docs/api/html/classyask_1_1command__line__parser_1_1option__base-members.html +++ b/docs/api/html/classyask_1_1command__line__parser_1_1option__base-members.html @@ -95,7 +95,7 @@ diff --git a/docs/api/html/classyask_1_1command__line__parser_1_1option__base.html b/docs/api/html/classyask_1_1command__line__parser_1_1option__base.html index c9d2e247..69992e8c 100644 --- a/docs/api/html/classyask_1_1command__line__parser_1_1option__base.html +++ b/docs/api/html/classyask_1_1command__line__parser_1_1option__base.html @@ -447,7 +447,7 @@

diff --git a/docs/api/html/classyask_1_1command__line__parser_1_1string__list__option-members.html b/docs/api/html/classyask_1_1command__line__parser_1_1string__list__option-members.html index 3ce3e9c1..2b4cdd87 100644 --- a/docs/api/html/classyask_1_1command__line__parser_1_1string__list__option-members.html +++ b/docs/api/html/classyask_1_1command__line__parser_1_1string__list__option-members.html @@ -97,7 +97,7 @@ diff --git a/docs/api/html/classyask_1_1command__line__parser_1_1string__list__option.html b/docs/api/html/classyask_1_1command__line__parser_1_1string__list__option.html index b73f41ee..78073596 100644 --- a/docs/api/html/classyask_1_1command__line__parser_1_1string__list__option.html +++ b/docs/api/html/classyask_1_1command__line__parser_1_1string__list__option.html @@ -270,7 +270,7 @@

diff --git a/docs/api/html/classyask_1_1command__line__parser_1_1string__option-members.html b/docs/api/html/classyask_1_1command__line__parser_1_1string__option-members.html index 22a23a44..7c42f8b2 100644 --- a/docs/api/html/classyask_1_1command__line__parser_1_1string__option-members.html +++ b/docs/api/html/classyask_1_1command__line__parser_1_1string__option-members.html @@ -96,7 +96,7 @@ diff --git a/docs/api/html/classyask_1_1command__line__parser_1_1string__option.html b/docs/api/html/classyask_1_1command__line__parser_1_1string__option.html index 8796a7d6..74f74d8b 100644 --- a/docs/api/html/classyask_1_1command__line__parser_1_1string__option.html +++ b/docs/api/html/classyask_1_1command__line__parser_1_1string__option.html @@ -265,7 +265,7 @@

diff --git a/docs/api/html/classyask_1_1yask__exception-members.html b/docs/api/html/classyask_1_1yask__exception-members.html index 8440ccf4..61e94f6d 100644 --- a/docs/api/html/classyask_1_1yask__exception-members.html +++ b/docs/api/html/classyask_1_1yask__exception-members.html @@ -89,7 +89,7 @@ diff --git a/docs/api/html/classyask_1_1yask__exception.html b/docs/api/html/classyask_1_1yask__exception.html index 8d45fa9d..e51a9e22 100644 --- a/docs/api/html/classyask_1_1yask__exception.html +++ b/docs/api/html/classyask_1_1yask__exception.html @@ -214,7 +214,7 @@

diff --git a/docs/api/html/classyask_1_1yask__file__output-members.html b/docs/api/html/classyask_1_1yask__file__output-members.html index 2953f1d9..2545fd32 100644 --- a/docs/api/html/classyask_1_1yask__file__output-members.html +++ b/docs/api/html/classyask_1_1yask__file__output-members.html @@ -88,7 +88,7 @@ diff --git a/docs/api/html/classyask_1_1yask__file__output.html b/docs/api/html/classyask_1_1yask__file__output.html index a500f81c..c46967ea 100644 --- a/docs/api/html/classyask_1_1yask__file__output.html +++ b/docs/api/html/classyask_1_1yask__file__output.html @@ -148,7 +148,7 @@

diff --git a/docs/api/html/classyask_1_1yask__null__output-members.html b/docs/api/html/classyask_1_1yask__null__output-members.html index 88d06ee8..971fd91d 100644 --- a/docs/api/html/classyask_1_1yask__null__output-members.html +++ b/docs/api/html/classyask_1_1yask__null__output-members.html @@ -86,7 +86,7 @@ diff --git a/docs/api/html/classyask_1_1yask__null__output.html b/docs/api/html/classyask_1_1yask__null__output.html index 516715f1..e01ae041 100644 --- a/docs/api/html/classyask_1_1yask__null__output.html +++ b/docs/api/html/classyask_1_1yask__null__output.html @@ -112,7 +112,7 @@ diff --git a/docs/api/html/classyask_1_1yask__output-members.html b/docs/api/html/classyask_1_1yask__output-members.html index 874c524b..c18a9a19 100644 --- a/docs/api/html/classyask_1_1yask__output-members.html +++ b/docs/api/html/classyask_1_1yask__output-members.html @@ -85,7 +85,7 @@ diff --git a/docs/api/html/classyask_1_1yask__output.html b/docs/api/html/classyask_1_1yask__output.html index e90e85e2..94e1e09d 100644 --- a/docs/api/html/classyask_1_1yask__output.html +++ b/docs/api/html/classyask_1_1yask__output.html @@ -143,7 +143,7 @@

diff --git a/docs/api/html/classyask_1_1yask__output__factory-members.html b/docs/api/html/classyask_1_1yask__output__factory-members.html index d0335728..070ceced 100644 --- a/docs/api/html/classyask_1_1yask__output__factory-members.html +++ b/docs/api/html/classyask_1_1yask__output__factory-members.html @@ -88,7 +88,7 @@ diff --git a/docs/api/html/classyask_1_1yask__output__factory.html b/docs/api/html/classyask_1_1yask__output__factory.html index e2843fdd..a8e97f3d 100644 --- a/docs/api/html/classyask_1_1yask__output__factory.html +++ b/docs/api/html/classyask_1_1yask__output__factory.html @@ -229,7 +229,7 @@

diff --git a/docs/api/html/classyask_1_1yask__stdout__output-members.html b/docs/api/html/classyask_1_1yask__stdout__output-members.html index 5a4989c4..69101b93 100644 --- a/docs/api/html/classyask_1_1yask__stdout__output-members.html +++ b/docs/api/html/classyask_1_1yask__stdout__output-members.html @@ -86,7 +86,7 @@ diff --git a/docs/api/html/classyask_1_1yask__stdout__output.html b/docs/api/html/classyask_1_1yask__stdout__output.html index 84317fab..ea80aa77 100644 --- a/docs/api/html/classyask_1_1yask__stdout__output.html +++ b/docs/api/html/classyask_1_1yask__stdout__output.html @@ -111,7 +111,7 @@ diff --git a/docs/api/html/classyask_1_1yask__string__output-members.html b/docs/api/html/classyask_1_1yask__string__output-members.html index cabc8c4f..f045df18 100644 --- a/docs/api/html/classyask_1_1yask__string__output-members.html +++ b/docs/api/html/classyask_1_1yask__string__output-members.html @@ -88,7 +88,7 @@ diff --git a/docs/api/html/classyask_1_1yask__string__output.html b/docs/api/html/classyask_1_1yask__string__output.html index a69aa7bb..9b0be682 100644 --- a/docs/api/html/classyask_1_1yask__string__output.html +++ b/docs/api/html/classyask_1_1yask__string__output.html @@ -148,7 +148,7 @@

diff --git a/docs/api/html/classyask_1_1yc__add__node-members.html b/docs/api/html/classyask_1_1yc__add__node-members.html index d9046340..97729f20 100644 --- a/docs/api/html/classyask_1_1yc__add__node-members.html +++ b/docs/api/html/classyask_1_1yc__add__node-members.html @@ -90,7 +90,7 @@ diff --git a/docs/api/html/classyask_1_1yc__add__node.html b/docs/api/html/classyask_1_1yc__add__node.html index cbc4e15d..cc52e02e 100644 --- a/docs/api/html/classyask_1_1yc__add__node.html +++ b/docs/api/html/classyask_1_1yc__add__node.html @@ -132,7 +132,7 @@ diff --git a/docs/api/html/classyask_1_1yc__and__node-members.html b/docs/api/html/classyask_1_1yc__and__node-members.html index 998d5b0f..d8336e66 100644 --- a/docs/api/html/classyask_1_1yc__and__node-members.html +++ b/docs/api/html/classyask_1_1yc__and__node-members.html @@ -89,7 +89,7 @@ diff --git a/docs/api/html/classyask_1_1yc__and__node.html b/docs/api/html/classyask_1_1yc__and__node.html index a2db90ba..5404b0d8 100644 --- a/docs/api/html/classyask_1_1yc__and__node.html +++ b/docs/api/html/classyask_1_1yc__and__node.html @@ -131,7 +131,7 @@ diff --git a/docs/api/html/classyask_1_1yc__binary__bool__node-members.html b/docs/api/html/classyask_1_1yc__binary__bool__node-members.html index fbe0b8bc..074662eb 100644 --- a/docs/api/html/classyask_1_1yc__binary__bool__node-members.html +++ b/docs/api/html/classyask_1_1yc__binary__bool__node-members.html @@ -89,7 +89,7 @@ diff --git a/docs/api/html/classyask_1_1yc__binary__bool__node.html b/docs/api/html/classyask_1_1yc__binary__bool__node.html index 51047087..31ca1c6d 100644 --- a/docs/api/html/classyask_1_1yc__binary__bool__node.html +++ b/docs/api/html/classyask_1_1yc__binary__bool__node.html @@ -131,7 +131,7 @@ diff --git a/docs/api/html/classyask_1_1yc__binary__comparison__node-members.html b/docs/api/html/classyask_1_1yc__binary__comparison__node-members.html index 7bf1bb27..4b648143 100644 --- a/docs/api/html/classyask_1_1yc__binary__comparison__node-members.html +++ b/docs/api/html/classyask_1_1yc__binary__comparison__node-members.html @@ -89,7 +89,7 @@ diff --git a/docs/api/html/classyask_1_1yc__binary__comparison__node.html b/docs/api/html/classyask_1_1yc__binary__comparison__node.html index 637f26a8..9044140e 100644 --- a/docs/api/html/classyask_1_1yc__binary__comparison__node.html +++ b/docs/api/html/classyask_1_1yc__binary__comparison__node.html @@ -190,7 +190,7 @@

diff --git a/docs/api/html/classyask_1_1yc__binary__number__node-members.html b/docs/api/html/classyask_1_1yc__binary__number__node-members.html index 503ee055..e6fecf79 100644 --- a/docs/api/html/classyask_1_1yc__binary__number__node-members.html +++ b/docs/api/html/classyask_1_1yc__binary__number__node-members.html @@ -89,7 +89,7 @@ diff --git a/docs/api/html/classyask_1_1yc__binary__number__node.html b/docs/api/html/classyask_1_1yc__binary__number__node.html index a0a9ee3e..db7dc24a 100644 --- a/docs/api/html/classyask_1_1yc__binary__number__node.html +++ b/docs/api/html/classyask_1_1yc__binary__number__node.html @@ -133,7 +133,7 @@ diff --git a/docs/api/html/classyask_1_1yc__bool__node-members.html b/docs/api/html/classyask_1_1yc__bool__node-members.html index 2cf599f2..be440d08 100644 --- a/docs/api/html/classyask_1_1yc__bool__node-members.html +++ b/docs/api/html/classyask_1_1yc__bool__node-members.html @@ -87,7 +87,7 @@ diff --git a/docs/api/html/classyask_1_1yc__bool__node.html b/docs/api/html/classyask_1_1yc__bool__node.html index d9aea705..894683c3 100644 --- a/docs/api/html/classyask_1_1yc__bool__node.html +++ b/docs/api/html/classyask_1_1yc__bool__node.html @@ -131,7 +131,7 @@ diff --git a/docs/api/html/classyask_1_1yc__commutative__number__node-members.html b/docs/api/html/classyask_1_1yc__commutative__number__node-members.html index 357563e5..3bd8d828 100644 --- a/docs/api/html/classyask_1_1yc__commutative__number__node-members.html +++ b/docs/api/html/classyask_1_1yc__commutative__number__node-members.html @@ -90,7 +90,7 @@ diff --git a/docs/api/html/classyask_1_1yc__commutative__number__node.html b/docs/api/html/classyask_1_1yc__commutative__number__node.html index 73a81225..42a760db 100644 --- a/docs/api/html/classyask_1_1yc__commutative__number__node.html +++ b/docs/api/html/classyask_1_1yc__commutative__number__node.html @@ -224,7 +224,7 @@

diff --git a/docs/api/html/classyask_1_1yc__const__number__node-members.html b/docs/api/html/classyask_1_1yc__const__number__node-members.html index 3b5c5785..34df20d8 100644 --- a/docs/api/html/classyask_1_1yc__const__number__node-members.html +++ b/docs/api/html/classyask_1_1yc__const__number__node-members.html @@ -89,7 +89,7 @@ diff --git a/docs/api/html/classyask_1_1yc__const__number__node.html b/docs/api/html/classyask_1_1yc__const__number__node.html index 0a902fc8..1e6dfb02 100644 --- a/docs/api/html/classyask_1_1yc__const__number__node.html +++ b/docs/api/html/classyask_1_1yc__const__number__node.html @@ -192,7 +192,7 @@

diff --git a/docs/api/html/classyask_1_1yc__divide__node-members.html b/docs/api/html/classyask_1_1yc__divide__node-members.html index cb11c414..8b272e74 100644 --- a/docs/api/html/classyask_1_1yc__divide__node-members.html +++ b/docs/api/html/classyask_1_1yc__divide__node-members.html @@ -89,7 +89,7 @@ diff --git a/docs/api/html/classyask_1_1yc__divide__node.html b/docs/api/html/classyask_1_1yc__divide__node.html index 0824cdba..4697dd7c 100644 --- a/docs/api/html/classyask_1_1yc__divide__node.html +++ b/docs/api/html/classyask_1_1yc__divide__node.html @@ -131,7 +131,7 @@ diff --git a/docs/api/html/classyask_1_1yc__equals__node-members.html b/docs/api/html/classyask_1_1yc__equals__node-members.html index aa364b70..3b285cd3 100644 --- a/docs/api/html/classyask_1_1yc__equals__node-members.html +++ b/docs/api/html/classyask_1_1yc__equals__node-members.html @@ -89,7 +89,7 @@ diff --git a/docs/api/html/classyask_1_1yc__equals__node.html b/docs/api/html/classyask_1_1yc__equals__node.html index a3085bf5..9befcfe6 100644 --- a/docs/api/html/classyask_1_1yc__equals__node.html +++ b/docs/api/html/classyask_1_1yc__equals__node.html @@ -129,7 +129,7 @@ diff --git a/docs/api/html/classyask_1_1yc__equation__node-members.html b/docs/api/html/classyask_1_1yc__equation__node-members.html index 8f3d095d..de2a79de 100644 --- a/docs/api/html/classyask_1_1yc__equation__node-members.html +++ b/docs/api/html/classyask_1_1yc__equation__node-members.html @@ -92,7 +92,7 @@ diff --git a/docs/api/html/classyask_1_1yc__equation__node.html b/docs/api/html/classyask_1_1yc__equation__node.html index 6933f5e2..2d3b6897 100644 --- a/docs/api/html/classyask_1_1yc__equation__node.html +++ b/docs/api/html/classyask_1_1yc__equation__node.html @@ -315,7 +315,7 @@

diff --git a/docs/api/html/classyask_1_1yc__expr__node-members.html b/docs/api/html/classyask_1_1yc__expr__node-members.html index 019970a2..cc1e047b 100644 --- a/docs/api/html/classyask_1_1yc__expr__node-members.html +++ b/docs/api/html/classyask_1_1yc__expr__node-members.html @@ -86,7 +86,7 @@ diff --git a/docs/api/html/classyask_1_1yc__expr__node.html b/docs/api/html/classyask_1_1yc__expr__node.html index 9eb569ef..cfefb82c 100644 --- a/docs/api/html/classyask_1_1yc__expr__node.html +++ b/docs/api/html/classyask_1_1yc__expr__node.html @@ -183,7 +183,7 @@

diff --git a/docs/api/html/classyask_1_1yc__factory-members.html b/docs/api/html/classyask_1_1yc__factory-members.html index b1e0c153..e05b9a76 100644 --- a/docs/api/html/classyask_1_1yc__factory-members.html +++ b/docs/api/html/classyask_1_1yc__factory-members.html @@ -86,7 +86,7 @@ diff --git a/docs/api/html/classyask_1_1yc__factory.html b/docs/api/html/classyask_1_1yc__factory.html index f205a3c1..f200693b 100644 --- a/docs/api/html/classyask_1_1yc__factory.html +++ b/docs/api/html/classyask_1_1yc__factory.html @@ -167,7 +167,7 @@

diff --git a/docs/api/html/classyask_1_1yc__greater__than__node-members.html b/docs/api/html/classyask_1_1yc__greater__than__node-members.html index e0e7edd4..32c64836 100644 --- a/docs/api/html/classyask_1_1yc__greater__than__node-members.html +++ b/docs/api/html/classyask_1_1yc__greater__than__node-members.html @@ -89,7 +89,7 @@ diff --git a/docs/api/html/classyask_1_1yc__greater__than__node.html b/docs/api/html/classyask_1_1yc__greater__than__node.html index adcbacfc..3a7026ca 100644 --- a/docs/api/html/classyask_1_1yc__greater__than__node.html +++ b/docs/api/html/classyask_1_1yc__greater__than__node.html @@ -129,7 +129,7 @@ diff --git a/docs/api/html/classyask_1_1yc__index__node-members.html b/docs/api/html/classyask_1_1yc__index__node-members.html index 0024b18c..14643209 100644 --- a/docs/api/html/classyask_1_1yc__index__node-members.html +++ b/docs/api/html/classyask_1_1yc__index__node-members.html @@ -88,7 +88,7 @@ diff --git a/docs/api/html/classyask_1_1yc__index__node.html b/docs/api/html/classyask_1_1yc__index__node.html index f0846108..4cec13fa 100644 --- a/docs/api/html/classyask_1_1yc__index__node.html +++ b/docs/api/html/classyask_1_1yc__index__node.html @@ -154,7 +154,7 @@

diff --git a/docs/api/html/classyask_1_1yc__less__than__node-members.html b/docs/api/html/classyask_1_1yc__less__than__node-members.html index 02fb1634..c4404d9d 100644 --- a/docs/api/html/classyask_1_1yc__less__than__node-members.html +++ b/docs/api/html/classyask_1_1yc__less__than__node-members.html @@ -89,7 +89,7 @@ diff --git a/docs/api/html/classyask_1_1yc__less__than__node.html b/docs/api/html/classyask_1_1yc__less__than__node.html index 43b8fd11..19e06141 100644 --- a/docs/api/html/classyask_1_1yc__less__than__node.html +++ b/docs/api/html/classyask_1_1yc__less__than__node.html @@ -129,7 +129,7 @@ diff --git a/docs/api/html/classyask_1_1yc__mod__node-members.html b/docs/api/html/classyask_1_1yc__mod__node-members.html index 25015511..e3dbe884 100644 --- a/docs/api/html/classyask_1_1yc__mod__node-members.html +++ b/docs/api/html/classyask_1_1yc__mod__node-members.html @@ -89,7 +89,7 @@ diff --git a/docs/api/html/classyask_1_1yc__mod__node.html b/docs/api/html/classyask_1_1yc__mod__node.html index 105018a9..912edb74 100644 --- a/docs/api/html/classyask_1_1yc__mod__node.html +++ b/docs/api/html/classyask_1_1yc__mod__node.html @@ -131,7 +131,7 @@ diff --git a/docs/api/html/classyask_1_1yc__multiply__node-members.html b/docs/api/html/classyask_1_1yc__multiply__node-members.html index 647e4c33..8d72f0e9 100644 --- a/docs/api/html/classyask_1_1yc__multiply__node-members.html +++ b/docs/api/html/classyask_1_1yc__multiply__node-members.html @@ -90,7 +90,7 @@ diff --git a/docs/api/html/classyask_1_1yc__multiply__node.html b/docs/api/html/classyask_1_1yc__multiply__node.html index d3211d23..32d8b404 100644 --- a/docs/api/html/classyask_1_1yc__multiply__node.html +++ b/docs/api/html/classyask_1_1yc__multiply__node.html @@ -132,7 +132,7 @@ diff --git a/docs/api/html/classyask_1_1yc__negate__node-members.html b/docs/api/html/classyask_1_1yc__negate__node-members.html index f030f4af..692c5509 100644 --- a/docs/api/html/classyask_1_1yc__negate__node-members.html +++ b/docs/api/html/classyask_1_1yc__negate__node-members.html @@ -88,7 +88,7 @@ diff --git a/docs/api/html/classyask_1_1yc__negate__node.html b/docs/api/html/classyask_1_1yc__negate__node.html index e99bf832..c7e38d39 100644 --- a/docs/api/html/classyask_1_1yc__negate__node.html +++ b/docs/api/html/classyask_1_1yc__negate__node.html @@ -154,7 +154,7 @@

diff --git a/docs/api/html/classyask_1_1yc__node__factory-members.html b/docs/api/html/classyask_1_1yc__node__factory-members.html index bf622467..19118c63 100644 --- a/docs/api/html/classyask_1_1yc__node__factory-members.html +++ b/docs/api/html/classyask_1_1yc__node__factory-members.html @@ -108,7 +108,7 @@ diff --git a/docs/api/html/classyask_1_1yc__node__factory.html b/docs/api/html/classyask_1_1yc__node__factory.html index 0ba82543..bcdfc077 100644 --- a/docs/api/html/classyask_1_1yc__node__factory.html +++ b/docs/api/html/classyask_1_1yc__node__factory.html @@ -1182,7 +1182,7 @@

diff --git a/docs/api/html/classyask_1_1yc__not__equals__node-members.html b/docs/api/html/classyask_1_1yc__not__equals__node-members.html index 30c13572..b2dda573 100644 --- a/docs/api/html/classyask_1_1yc__not__equals__node-members.html +++ b/docs/api/html/classyask_1_1yc__not__equals__node-members.html @@ -89,7 +89,7 @@ diff --git a/docs/api/html/classyask_1_1yc__not__equals__node.html b/docs/api/html/classyask_1_1yc__not__equals__node.html index 9b61fa09..99312278 100644 --- a/docs/api/html/classyask_1_1yc__not__equals__node.html +++ b/docs/api/html/classyask_1_1yc__not__equals__node.html @@ -129,7 +129,7 @@ diff --git a/docs/api/html/classyask_1_1yc__not__greater__than__node-members.html b/docs/api/html/classyask_1_1yc__not__greater__than__node-members.html index 62f4d327..ad97ecfa 100644 --- a/docs/api/html/classyask_1_1yc__not__greater__than__node-members.html +++ b/docs/api/html/classyask_1_1yc__not__greater__than__node-members.html @@ -89,7 +89,7 @@ diff --git a/docs/api/html/classyask_1_1yc__not__greater__than__node.html b/docs/api/html/classyask_1_1yc__not__greater__than__node.html index 8f082f80..bd662516 100644 --- a/docs/api/html/classyask_1_1yc__not__greater__than__node.html +++ b/docs/api/html/classyask_1_1yc__not__greater__than__node.html @@ -129,7 +129,7 @@ diff --git a/docs/api/html/classyask_1_1yc__not__less__than__node-members.html b/docs/api/html/classyask_1_1yc__not__less__than__node-members.html index 4ae92e11..d9761ac7 100644 --- a/docs/api/html/classyask_1_1yc__not__less__than__node-members.html +++ b/docs/api/html/classyask_1_1yc__not__less__than__node-members.html @@ -89,7 +89,7 @@ diff --git a/docs/api/html/classyask_1_1yc__not__less__than__node.html b/docs/api/html/classyask_1_1yc__not__less__than__node.html index 4781eaad..4d3efaae 100644 --- a/docs/api/html/classyask_1_1yc__not__less__than__node.html +++ b/docs/api/html/classyask_1_1yc__not__less__than__node.html @@ -129,7 +129,7 @@ diff --git a/docs/api/html/classyask_1_1yc__not__node-members.html b/docs/api/html/classyask_1_1yc__not__node-members.html index 2d28b117..015fa7d3 100644 --- a/docs/api/html/classyask_1_1yc__not__node-members.html +++ b/docs/api/html/classyask_1_1yc__not__node-members.html @@ -88,7 +88,7 @@ diff --git a/docs/api/html/classyask_1_1yc__not__node.html b/docs/api/html/classyask_1_1yc__not__node.html index 0ac05e42..78bfcd87 100644 --- a/docs/api/html/classyask_1_1yc__not__node.html +++ b/docs/api/html/classyask_1_1yc__not__node.html @@ -154,7 +154,7 @@

diff --git a/docs/api/html/classyask_1_1yc__number__any__arg-members.html b/docs/api/html/classyask_1_1yc__number__any__arg-members.html index 03032000..8d290256 100644 --- a/docs/api/html/classyask_1_1yc__number__any__arg-members.html +++ b/docs/api/html/classyask_1_1yc__number__any__arg-members.html @@ -92,7 +92,7 @@ diff --git a/docs/api/html/classyask_1_1yc__number__any__arg.html b/docs/api/html/classyask_1_1yc__number__any__arg.html index 43fd362c..7ca97379 100644 --- a/docs/api/html/classyask_1_1yc__number__any__arg.html +++ b/docs/api/html/classyask_1_1yc__number__any__arg.html @@ -149,7 +149,7 @@ diff --git a/docs/api/html/classyask_1_1yc__number__const__arg-members.html b/docs/api/html/classyask_1_1yc__number__const__arg-members.html index a29e2040..80739317 100644 --- a/docs/api/html/classyask_1_1yc__number__const__arg-members.html +++ b/docs/api/html/classyask_1_1yc__number__const__arg-members.html @@ -88,7 +88,7 @@ diff --git a/docs/api/html/classyask_1_1yc__number__const__arg.html b/docs/api/html/classyask_1_1yc__number__const__arg.html index 15959998..381b1d94 100644 --- a/docs/api/html/classyask_1_1yc__number__const__arg.html +++ b/docs/api/html/classyask_1_1yc__number__const__arg.html @@ -133,7 +133,7 @@ diff --git a/docs/api/html/classyask_1_1yc__number__node-members.html b/docs/api/html/classyask_1_1yc__number__node-members.html index 9e61a7ef..396baca3 100644 --- a/docs/api/html/classyask_1_1yc__number__node-members.html +++ b/docs/api/html/classyask_1_1yc__number__node-members.html @@ -87,7 +87,7 @@ diff --git a/docs/api/html/classyask_1_1yc__number__node.html b/docs/api/html/classyask_1_1yc__number__node.html index ead02068..a54850c2 100644 --- a/docs/api/html/classyask_1_1yc__number__node.html +++ b/docs/api/html/classyask_1_1yc__number__node.html @@ -131,7 +131,7 @@ diff --git a/docs/api/html/classyask_1_1yc__number__ptr__arg-members.html b/docs/api/html/classyask_1_1yc__number__ptr__arg-members.html index aae67adb..794f3f63 100644 --- a/docs/api/html/classyask_1_1yc__number__ptr__arg-members.html +++ b/docs/api/html/classyask_1_1yc__number__ptr__arg-members.html @@ -86,7 +86,7 @@ diff --git a/docs/api/html/classyask_1_1yc__number__ptr__arg.html b/docs/api/html/classyask_1_1yc__number__ptr__arg.html index 4b9aec5a..1e76b750 100644 --- a/docs/api/html/classyask_1_1yc__number__ptr__arg.html +++ b/docs/api/html/classyask_1_1yc__number__ptr__arg.html @@ -121,7 +121,7 @@ diff --git a/docs/api/html/classyask_1_1yc__or__node-members.html b/docs/api/html/classyask_1_1yc__or__node-members.html index 8cc5821e..5b4cc619 100644 --- a/docs/api/html/classyask_1_1yc__or__node-members.html +++ b/docs/api/html/classyask_1_1yc__or__node-members.html @@ -89,7 +89,7 @@ diff --git a/docs/api/html/classyask_1_1yc__or__node.html b/docs/api/html/classyask_1_1yc__or__node.html index a310d42a..ed4fcade 100644 --- a/docs/api/html/classyask_1_1yc__or__node.html +++ b/docs/api/html/classyask_1_1yc__or__node.html @@ -131,7 +131,7 @@ diff --git a/docs/api/html/classyask_1_1yc__solution-members.html b/docs/api/html/classyask_1_1yc__solution-members.html index e0d7017d..20ee1c27 100644 --- a/docs/api/html/classyask_1_1yc__solution-members.html +++ b/docs/api/html/classyask_1_1yc__solution-members.html @@ -135,7 +135,7 @@ diff --git a/docs/api/html/classyask_1_1yc__solution.html b/docs/api/html/classyask_1_1yc__solution.html index 5ae4b8a2..7dea2f5c 100644 --- a/docs/api/html/classyask_1_1yc__solution.html +++ b/docs/api/html/classyask_1_1yc__solution.html @@ -1687,7 +1687,7 @@

diff --git a/docs/api/html/classyask_1_1yc__solution__base-members.html b/docs/api/html/classyask_1_1yc__solution__base-members.html index 5bf7a96e..922aa4b6 100644 --- a/docs/api/html/classyask_1_1yc__solution__base-members.html +++ b/docs/api/html/classyask_1_1yc__solution__base-members.html @@ -96,7 +96,7 @@ diff --git a/docs/api/html/classyask_1_1yc__solution__base.html b/docs/api/html/classyask_1_1yc__solution__base.html index 15732dce..809851f6 100644 --- a/docs/api/html/classyask_1_1yc__solution__base.html +++ b/docs/api/html/classyask_1_1yc__solution__base.html @@ -294,7 +294,7 @@

diff --git a/docs/api/html/classyask_1_1yc__solution__with__radius__base-members.html b/docs/api/html/classyask_1_1yc__solution__with__radius__base-members.html index aa4db758..bb65f971 100644 --- a/docs/api/html/classyask_1_1yc__solution__with__radius__base-members.html +++ b/docs/api/html/classyask_1_1yc__solution__with__radius__base-members.html @@ -99,7 +99,7 @@ diff --git a/docs/api/html/classyask_1_1yc__solution__with__radius__base.html b/docs/api/html/classyask_1_1yc__solution__with__radius__base.html index 207fb203..4ecc54b3 100644 --- a/docs/api/html/classyask_1_1yc__solution__with__radius__base.html +++ b/docs/api/html/classyask_1_1yc__solution__with__radius__base.html @@ -260,7 +260,7 @@

diff --git a/docs/api/html/classyask_1_1yc__subtract__node-members.html b/docs/api/html/classyask_1_1yc__subtract__node-members.html index a6dc3218..4eb582a2 100644 --- a/docs/api/html/classyask_1_1yc__subtract__node-members.html +++ b/docs/api/html/classyask_1_1yc__subtract__node-members.html @@ -89,7 +89,7 @@ diff --git a/docs/api/html/classyask_1_1yc__subtract__node.html b/docs/api/html/classyask_1_1yc__subtract__node.html index c3013e0b..fb2a4032 100644 --- a/docs/api/html/classyask_1_1yc__subtract__node.html +++ b/docs/api/html/classyask_1_1yc__subtract__node.html @@ -131,7 +131,7 @@ diff --git a/docs/api/html/classyask_1_1yc__var-members.html b/docs/api/html/classyask_1_1yc__var-members.html index 94502c0e..0b4b42f1 100644 --- a/docs/api/html/classyask_1_1yc__var-members.html +++ b/docs/api/html/classyask_1_1yc__var-members.html @@ -87,8 +87,8 @@ is_dynamic_step_alloc() const =0yask::yc_varpure virtual new_grid_point(const std::vector< yc_number_node_ptr > &index_exprs)yask::yc_varinline new_grid_point(const std::initializer_list< yc_number_node_ptr > &index_exprs)yask::yc_varinline - new_relative_grid_point(const std::vector< int > &dim_offsets)yask::yc_varinline - new_relative_grid_point(const std::initializer_list< int > &dim_offsets)yask::yc_varinline + new_relative_grid_point(const std::vector< int > &dim_offsets)=0yask::yc_varpure virtual + new_relative_grid_point(const std::initializer_list< int > &dim_offsets)=0yask::yc_varpure virtual new_relative_var_point(const std::vector< int > &dim_offsets)=0yask::yc_varpure virtual new_relative_var_point(const std::initializer_list< int > &dim_offsets)=0yask::yc_varpure virtual new_var_point(const std::vector< yc_number_node_ptr > &index_exprs)=0yask::yc_varpure virtual @@ -99,7 +99,7 @@ diff --git a/docs/api/html/classyask_1_1yc__var.html b/docs/api/html/classyask_1_1yc__var.html index 07dbcc9f..aaefc499 100644 --- a/docs/api/html/classyask_1_1yc__var.html +++ b/docs/api/html/classyask_1_1yc__var.html @@ -131,14 +131,14 @@ YASK_DEPRECATED yc_var_point_node_ptr new_grid_point (const std::initializer_list< yc_number_node_ptr > &index_exprs)  [Deprecated] Use new_var_point().
  - -YASK_DEPRECATED yc_var_point_node_ptr new_relative_grid_point (const std::vector< int > &dim_offsets) - [Deprecated] Use new_relative_var_point().
-  - -YASK_DEPRECATED yc_var_point_node_ptr new_relative_grid_point (const std::initializer_list< int > &dim_offsets) - [Deprecated] Use new_relative_var_point().
-  + +virtual YASK_DEPRECATED yc_var_point_node_ptr new_relative_grid_point (const std::vector< int > &dim_offsets)=0 + [Deprecated] Use new_var_point().
+  + +virtual YASK_DEPRECATED yc_var_point_node_ptr new_relative_grid_point (const std::initializer_list< int > &dim_offsets)=0 + [Deprecated] Use new_var_point().

Detailed Description

A compile-time data variable.

@@ -429,7 +429,7 @@

diff --git a/docs/api/html/classyask_1_1yc__var__point__node-members.html b/docs/api/html/classyask_1_1yc__var__point__node-members.html index 4b0796da..4ca6b3c3 100644 --- a/docs/api/html/classyask_1_1yc__var__point__node-members.html +++ b/docs/api/html/classyask_1_1yc__var__point__node-members.html @@ -89,7 +89,7 @@

diff --git a/docs/api/html/classyask_1_1yc__var__point__node.html b/docs/api/html/classyask_1_1yc__var__point__node.html index f26e4879..0bb67405 100644 --- a/docs/api/html/classyask_1_1yc__var__point__node.html +++ b/docs/api/html/classyask_1_1yc__var__point__node.html @@ -158,7 +158,7 @@

diff --git a/docs/api/html/classyask_1_1yc__var__proxy-members.html b/docs/api/html/classyask_1_1yc__var__proxy-members.html index 098a0f64..15eaee12 100644 --- a/docs/api/html/classyask_1_1yc__var__proxy-members.html +++ b/docs/api/html/classyask_1_1yc__var__proxy-members.html @@ -96,7 +96,7 @@ diff --git a/docs/api/html/classyask_1_1yc__var__proxy.html b/docs/api/html/classyask_1_1yc__var__proxy.html index d0fe3d8b..7527f7b6 100644 --- a/docs/api/html/classyask_1_1yc__var__proxy.html +++ b/docs/api/html/classyask_1_1yc__var__proxy.html @@ -150,7 +150,7 @@
Factory to create AST nodes.
Definition yc_node_api.hpp:609
virtual yc_index_node_ptr new_step_index(const std::string &name) const
Create a step-index node.
virtual yc_index_node_ptr new_domain_index(const std::string &name) const
Create a domain-index node.
-
A wrapper or "proxy" class around a yc_var pointer.
Definition yask_compiler_api.hpp:925
+
A wrapper or "proxy" class around a yc_var pointer.
Definition yask_compiler_api.hpp:921
#define EQUALS
Recommended macro to make the "equality" operator readable and self-explanatory.
Definition yc_node_api.hpp:1102

Compare to the example shown in yc_solution::new_var().

Scoping and lifetime: Since the yc_var pointer in a yc_var_proxy object is a shared pointer also owned by the yc_solution object used to construct the yc_var_proxy object, the underlying YASK var will not be destroyed until both the yc_var_proxy object and the yc_solution object are destroyed. A yc_var_proxy object created from an existing yc_var object will have the same properties.

@@ -569,7 +569,7 @@

diff --git a/docs/api/html/classyask_1_1yk__env-members.html b/docs/api/html/classyask_1_1yk__env-members.html index 33a7a3b1..e778135c 100644 --- a/docs/api/html/classyask_1_1yk__env-members.html +++ b/docs/api/html/classyask_1_1yk__env-members.html @@ -97,7 +97,7 @@ diff --git a/docs/api/html/classyask_1_1yk__env.html b/docs/api/html/classyask_1_1yk__env.html index 54f51726..dbac46d7 100644 --- a/docs/api/html/classyask_1_1yk__env.html +++ b/docs/api/html/classyask_1_1yk__env.html @@ -536,7 +536,7 @@

diff --git a/docs/api/html/classyask_1_1yk__factory-members.html b/docs/api/html/classyask_1_1yk__factory-members.html index 625e29e3..cb1b2ba9 100644 --- a/docs/api/html/classyask_1_1yk__factory-members.html +++ b/docs/api/html/classyask_1_1yk__factory-members.html @@ -90,7 +90,7 @@ diff --git a/docs/api/html/classyask_1_1yk__factory.html b/docs/api/html/classyask_1_1yk__factory.html index 5656053d..3b90d27b 100644 --- a/docs/api/html/classyask_1_1yk__factory.html +++ b/docs/api/html/classyask_1_1yk__factory.html @@ -288,7 +288,7 @@

diff --git a/docs/api/html/classyask_1_1yk__solution-members.html b/docs/api/html/classyask_1_1yk__solution-members.html index 6afece8f..812123e1 100644 --- a/docs/api/html/classyask_1_1yk__solution-members.html +++ b/docs/api/html/classyask_1_1yk__solution-members.html @@ -170,7 +170,7 @@ diff --git a/docs/api/html/classyask_1_1yk__solution.html b/docs/api/html/classyask_1_1yk__solution.html index 8f759614..019af42f 100644 --- a/docs/api/html/classyask_1_1yk__solution.html +++ b/docs/api/html/classyask_1_1yk__solution.html @@ -3037,7 +3037,7 @@

diff --git a/docs/api/html/classyask_1_1yk__stats-members.html b/docs/api/html/classyask_1_1yk__stats-members.html index 61c7c117..a2503a69 100644 --- a/docs/api/html/classyask_1_1yk__stats-members.html +++ b/docs/api/html/classyask_1_1yk__stats-members.html @@ -89,7 +89,7 @@ diff --git a/docs/api/html/classyask_1_1yk__stats.html b/docs/api/html/classyask_1_1yk__stats.html index 1fb91a54..540087ea 100644 --- a/docs/api/html/classyask_1_1yk__stats.html +++ b/docs/api/html/classyask_1_1yk__stats.html @@ -254,7 +254,7 @@

diff --git a/docs/api/html/classyask_1_1yk__var-members.html b/docs/api/html/classyask_1_1yk__var-members.html index 5fa7a30c..448e1a4e 100644 --- a/docs/api/html/classyask_1_1yk__var-members.html +++ b/docs/api/html/classyask_1_1yk__var-members.html @@ -164,7 +164,7 @@ diff --git a/docs/api/html/classyask_1_1yk__var.html b/docs/api/html/classyask_1_1yk__var.html index f87e1b84..83daf314 100644 --- a/docs/api/html/classyask_1_1yk__var.html +++ b/docs/api/html/classyask_1_1yk__var.html @@ -3295,7 +3295,7 @@

diff --git a/docs/api/html/classyask_1_1yk__var_1_1yk__reduction__result-members.html b/docs/api/html/classyask_1_1yk__var_1_1yk__reduction__result-members.html index a950fdcc..37847849 100644 --- a/docs/api/html/classyask_1_1yk__var_1_1yk__reduction__result-members.html +++ b/docs/api/html/classyask_1_1yk__var_1_1yk__reduction__result-members.html @@ -90,7 +90,7 @@ diff --git a/docs/api/html/classyask_1_1yk__var_1_1yk__reduction__result.html b/docs/api/html/classyask_1_1yk__var_1_1yk__reduction__result.html index eabee102..fca236d6 100644 --- a/docs/api/html/classyask_1_1yk__var_1_1yk__reduction__result.html +++ b/docs/api/html/classyask_1_1yk__var_1_1yk__reduction__result.html @@ -346,7 +346,7 @@

diff --git a/docs/api/html/dir_bf5b4c97dbb63154054404349dc002d1.html b/docs/api/html/dir_bf5b4c97dbb63154054404349dc002d1.html index 969cb069..88217a64 100644 --- a/docs/api/html/dir_bf5b4c97dbb63154054404349dc002d1.html +++ b/docs/api/html/dir_bf5b4c97dbb63154054404349dc002d1.html @@ -92,7 +92,7 @@ diff --git a/docs/api/html/dir_d44c64559bbebec7f509842c48db8b23.html b/docs/api/html/dir_d44c64559bbebec7f509842c48db8b23.html index 75f4b6e4..0de94508 100644 --- a/docs/api/html/dir_d44c64559bbebec7f509842c48db8b23.html +++ b/docs/api/html/dir_d44c64559bbebec7f509842c48db8b23.html @@ -95,7 +95,7 @@ diff --git a/docs/api/html/files.html b/docs/api/html/files.html index 725d575a..27ab4d95 100644 --- a/docs/api/html/files.html +++ b/docs/api/html/files.html @@ -89,7 +89,7 @@ diff --git a/docs/api/html/functions.html b/docs/api/html/functions.html index a3ac027d..ac6eca8a 100644 --- a/docs/api/html/functions.html +++ b/docs/api/html/functions.html @@ -83,7 +83,7 @@

- _ -

    diff --git a/docs/api/html/functions_a.html b/docs/api/html/functions_a.html index fdfed024..eb4617e4 100644 --- a/docs/api/html/functions_a.html +++ b/docs/api/html/functions_a.html @@ -86,7 +86,7 @@

    - a -

      diff --git a/docs/api/html/functions_b.html b/docs/api/html/functions_b.html index 0e14b14e..1edec206 100644 --- a/docs/api/html/functions_b.html +++ b/docs/api/html/functions_b.html @@ -78,7 +78,7 @@

      - b -

        diff --git a/docs/api/html/functions_c.html b/docs/api/html/functions_c.html index 22ddc350..6b50cc0d 100644 --- a/docs/api/html/functions_c.html +++ b/docs/api/html/functions_c.html @@ -93,7 +93,7 @@

        - c -

          diff --git a/docs/api/html/functions_d.html b/docs/api/html/functions_d.html index 885ce4e8..18f8d7d9 100644 --- a/docs/api/html/functions_d.html +++ b/docs/api/html/functions_d.html @@ -81,7 +81,7 @@

          - d -

            diff --git a/docs/api/html/functions_e.html b/docs/api/html/functions_e.html index a447918f..e3e823a8 100644 --- a/docs/api/html/functions_e.html +++ b/docs/api/html/functions_e.html @@ -80,7 +80,7 @@

            - e -

              diff --git a/docs/api/html/functions_f.html b/docs/api/html/functions_f.html index 6ed096f0..a81a84d7 100644 --- a/docs/api/html/functions_f.html +++ b/docs/api/html/functions_f.html @@ -84,7 +84,7 @@

              - f -

                diff --git a/docs/api/html/functions_func.html b/docs/api/html/functions_func.html index 02050eca..d09d156a 100644 --- a/docs/api/html/functions_func.html +++ b/docs/api/html/functions_func.html @@ -83,7 +83,7 @@

                - _ -

                  diff --git a/docs/api/html/functions_func_a.html b/docs/api/html/functions_func_a.html index 82e3024e..1eee2a7a 100644 --- a/docs/api/html/functions_func_a.html +++ b/docs/api/html/functions_func_a.html @@ -86,7 +86,7 @@

                  - a -

                    diff --git a/docs/api/html/functions_func_b.html b/docs/api/html/functions_func_b.html index d06bf0be..17cfa0c7 100644 --- a/docs/api/html/functions_func_b.html +++ b/docs/api/html/functions_func_b.html @@ -78,7 +78,7 @@

                    - b -

                      diff --git a/docs/api/html/functions_func_c.html b/docs/api/html/functions_func_c.html index 3405a487..42cdcabf 100644 --- a/docs/api/html/functions_func_c.html +++ b/docs/api/html/functions_func_c.html @@ -93,7 +93,7 @@

                      - c -

                        diff --git a/docs/api/html/functions_func_d.html b/docs/api/html/functions_func_d.html index e44461b6..73d4cbee 100644 --- a/docs/api/html/functions_func_d.html +++ b/docs/api/html/functions_func_d.html @@ -81,7 +81,7 @@

                        - d -

                          diff --git a/docs/api/html/functions_func_e.html b/docs/api/html/functions_func_e.html index 92c199ed..df30da4e 100644 --- a/docs/api/html/functions_func_e.html +++ b/docs/api/html/functions_func_e.html @@ -80,7 +80,7 @@

                          - e -

                            diff --git a/docs/api/html/functions_func_f.html b/docs/api/html/functions_func_f.html index f3970ebf..d01c7ccd 100644 --- a/docs/api/html/functions_func_f.html +++ b/docs/api/html/functions_func_f.html @@ -84,7 +84,7 @@

                            - f -

                              diff --git a/docs/api/html/functions_func_g.html b/docs/api/html/functions_func_g.html index c0a0411c..33b0aa61 100644 --- a/docs/api/html/functions_func_g.html +++ b/docs/api/html/functions_func_g.html @@ -179,7 +179,7 @@

                              - g -

                                diff --git a/docs/api/html/functions_func_i.html b/docs/api/html/functions_func_i.html index db0276bb..00b30be0 100644 --- a/docs/api/html/functions_func_i.html +++ b/docs/api/html/functions_func_i.html @@ -91,7 +91,7 @@

                                - i -

                                  diff --git a/docs/api/html/functions_func_l.html b/docs/api/html/functions_func_l.html index 7efb69f5..c8df449e 100644 --- a/docs/api/html/functions_func_l.html +++ b/docs/api/html/functions_func_l.html @@ -78,7 +78,7 @@

                                  - l -

                                    diff --git a/docs/api/html/functions_func_n.html b/docs/api/html/functions_func_n.html index e2e5ec8c..78bbcdd5 100644 --- a/docs/api/html/functions_func_n.html +++ b/docs/api/html/functions_func_n.html @@ -101,7 +101,7 @@

                                    - n -

                                    • new_null_output() : yask::yask_output_factory
                                    • new_number_node() : yask::yc_node_factory, yask::yc_solution_base
                                    • new_or_node() : yask::yc_node_factory
                                    • -
                                    • new_relative_grid_point() : yask::yc_var
                                    • +
                                    • new_relative_grid_point() : yask::yc_var
                                    • new_relative_var_point() : yask::yc_var
                                    • new_scratch_grid() : yask::yc_solution
                                    • new_scratch_var() : yask::yc_solution
                                    • @@ -116,7 +116,7 @@

                                      - n -

                                        diff --git a/docs/api/html/functions_func_o.html b/docs/api/html/functions_func_o.html index c5b22586..b967ba1f 100644 --- a/docs/api/html/functions_func_o.html +++ b/docs/api/html/functions_func_o.html @@ -82,7 +82,7 @@

                                        - o -

                                          diff --git a/docs/api/html/functions_func_p.html b/docs/api/html/functions_func_p.html index 04cf52cd..daa475ca 100644 --- a/docs/api/html/functions_func_p.html +++ b/docs/api/html/functions_func_p.html @@ -83,7 +83,7 @@

                                          - p -

                                            diff --git a/docs/api/html/functions_func_r.html b/docs/api/html/functions_func_r.html index 5c30ae3e..75b5d378 100644 --- a/docs/api/html/functions_func_r.html +++ b/docs/api/html/functions_func_r.html @@ -82,7 +82,7 @@

                                            - r -

                                              diff --git a/docs/api/html/functions_func_s.html b/docs/api/html/functions_func_s.html index 335463c0..6692131f 100644 --- a/docs/api/html/functions_func_s.html +++ b/docs/api/html/functions_func_s.html @@ -126,7 +126,7 @@

                                              - s -

                                                diff --git a/docs/api/html/functions_func_w.html b/docs/api/html/functions_func_w.html index 53b8689c..42874fca 100644 --- a/docs/api/html/functions_func_w.html +++ b/docs/api/html/functions_func_w.html @@ -78,7 +78,7 @@

                                                - w -

                                                  diff --git a/docs/api/html/functions_func_y.html b/docs/api/html/functions_func_y.html index a0c20830..3d335134 100644 --- a/docs/api/html/functions_func_y.html +++ b/docs/api/html/functions_func_y.html @@ -84,7 +84,7 @@

                                                  - y -

                                                    diff --git a/docs/api/html/functions_func_~.html b/docs/api/html/functions_func_~.html index f1144721..1a03d031 100644 --- a/docs/api/html/functions_func_~.html +++ b/docs/api/html/functions_func_~.html @@ -80,7 +80,7 @@

                                                    - ~ -

                                                      diff --git a/docs/api/html/functions_g.html b/docs/api/html/functions_g.html index db4c9fbc..9d8b8c9c 100644 --- a/docs/api/html/functions_g.html +++ b/docs/api/html/functions_g.html @@ -179,7 +179,7 @@

                                                      - g -

                                                        diff --git a/docs/api/html/functions_h.html b/docs/api/html/functions_h.html index 988a0174..125e01a5 100644 --- a/docs/api/html/functions_h.html +++ b/docs/api/html/functions_h.html @@ -79,7 +79,7 @@

                                                        - h -

                                                          diff --git a/docs/api/html/functions_i.html b/docs/api/html/functions_i.html index a866daa7..73f8909f 100644 --- a/docs/api/html/functions_i.html +++ b/docs/api/html/functions_i.html @@ -91,7 +91,7 @@

                                                          - i -

                                                            diff --git a/docs/api/html/functions_l.html b/docs/api/html/functions_l.html index 04188145..cadbe783 100644 --- a/docs/api/html/functions_l.html +++ b/docs/api/html/functions_l.html @@ -78,7 +78,7 @@

                                                            - l -

                                                              diff --git a/docs/api/html/functions_n.html b/docs/api/html/functions_n.html index 115ef2bd..f940d454 100644 --- a/docs/api/html/functions_n.html +++ b/docs/api/html/functions_n.html @@ -101,7 +101,7 @@

                                                              - n -

                                                              • new_null_output() : yask::yask_output_factory
                                                              • new_number_node() : yask::yc_node_factory, yask::yc_solution_base
                                                              • new_or_node() : yask::yc_node_factory
                                                              • -
                                                              • new_relative_grid_point() : yask::yc_var
                                                              • +
                                                              • new_relative_grid_point() : yask::yc_var
                                                              • new_relative_var_point() : yask::yc_var
                                                              • new_scratch_grid() : yask::yc_solution
                                                              • new_scratch_var() : yask::yc_solution
                                                              • @@ -116,7 +116,7 @@

                                                                - n -

                                                                  diff --git a/docs/api/html/functions_o.html b/docs/api/html/functions_o.html index d5e429bd..53dd901e 100644 --- a/docs/api/html/functions_o.html +++ b/docs/api/html/functions_o.html @@ -84,7 +84,7 @@

                                                                  - o -

                                                                    diff --git a/docs/api/html/functions_p.html b/docs/api/html/functions_p.html index 88c19b28..d1b438e2 100644 --- a/docs/api/html/functions_p.html +++ b/docs/api/html/functions_p.html @@ -83,7 +83,7 @@

                                                                    - p -

                                                                      diff --git a/docs/api/html/functions_r.html b/docs/api/html/functions_r.html index db25d945..ad4da1c8 100644 --- a/docs/api/html/functions_r.html +++ b/docs/api/html/functions_r.html @@ -82,7 +82,7 @@

                                                                      - r -

                                                                        diff --git a/docs/api/html/functions_s.html b/docs/api/html/functions_s.html index 92695345..01afacb4 100644 --- a/docs/api/html/functions_s.html +++ b/docs/api/html/functions_s.html @@ -127,7 +127,7 @@

                                                                        - s -

                                                                          diff --git a/docs/api/html/functions_type.html b/docs/api/html/functions_type.html index c5a315b0..b0cea6ae 100644 --- a/docs/api/html/functions_type.html +++ b/docs/api/html/functions_type.html @@ -81,7 +81,7 @@ diff --git a/docs/api/html/functions_vars.html b/docs/api/html/functions_vars.html index 5a67ab07..b06e832a 100644 --- a/docs/api/html/functions_vars.html +++ b/docs/api/html/functions_vars.html @@ -80,7 +80,7 @@ diff --git a/docs/api/html/functions_w.html b/docs/api/html/functions_w.html index 00e1b046..4d30e47c 100644 --- a/docs/api/html/functions_w.html +++ b/docs/api/html/functions_w.html @@ -78,7 +78,7 @@

                                                                          - w -

                                                                            diff --git a/docs/api/html/functions_y.html b/docs/api/html/functions_y.html index 92fd4de7..5e57f145 100644 --- a/docs/api/html/functions_y.html +++ b/docs/api/html/functions_y.html @@ -90,7 +90,7 @@

                                                                            - y -

                                                                              diff --git a/docs/api/html/functions_~.html b/docs/api/html/functions_~.html index c727f4a6..600020b6 100644 --- a/docs/api/html/functions_~.html +++ b/docs/api/html/functions_~.html @@ -80,7 +80,7 @@

                                                                              - ~ -

                                                                                diff --git a/docs/api/html/globals.html b/docs/api/html/globals.html index 394e9dce..b70cd6ca 100644 --- a/docs/api/html/globals.html +++ b/docs/api/html/globals.html @@ -94,7 +94,7 @@ diff --git a/docs/api/html/globals_defs.html b/docs/api/html/globals_defs.html index 410d2ddf..06d0e776 100644 --- a/docs/api/html/globals_defs.html +++ b/docs/api/html/globals_defs.html @@ -94,7 +94,7 @@ diff --git a/docs/api/html/group__yask.html b/docs/api/html/group__yask.html index f00297ff..31c7bd05 100644 --- a/docs/api/html/group__yask.html +++ b/docs/api/html/group__yask.html @@ -490,7 +490,7 @@

                                                                                diff --git a/docs/api/html/group__yc.html b/docs/api/html/group__yc.html index 4e7e0ec6..4bc6248f 100644 --- a/docs/api/html/group__yc.html +++ b/docs/api/html/group__yc.html @@ -803,7 +803,7 @@

                                                                                diff --git a/docs/api/html/group__yk.html b/docs/api/html/group__yk.html index 920df5e2..239763e8 100644 --- a/docs/api/html/group__yk.html +++ b/docs/api/html/group__yk.html @@ -212,7 +212,7 @@

                                                                                diff --git a/docs/api/html/hierarchy.html b/docs/api/html/hierarchy.html index 0d580f08..6f9d5312 100644 --- a/docs/api/html/hierarchy.html +++ b/docs/api/html/hierarchy.html @@ -139,7 +139,7 @@ diff --git a/docs/api/html/index.html b/docs/api/html/index.html index 360e183b..017badcc 100644 --- a/docs/api/html/index.html +++ b/docs/api/html/index.html @@ -249,7 +249,7 @@

                                                                                diff --git a/docs/api/html/modules.html b/docs/api/html/modules.html index 654b3980..ef5576c3 100644 --- a/docs/api/html/modules.html +++ b/docs/api/html/modules.html @@ -83,7 +83,7 @@ diff --git a/docs/api/html/search/all_c.js b/docs/api/html/search/all_c.js index 4588e354..2e5c6aa4 100644 --- a/docs/api/html/search/all_c.js +++ b/docs/api/html/search/all_c.js @@ -28,7 +28,7 @@ var searchData= ['new_5fnull_5foutput_25',['new_null_output',['../classyask_1_1yask__output__factory.html#ab0bfefeb356653f097800f17fa659399',1,'yask::yask_output_factory']]], ['new_5fnumber_5fnode_26',['new_number_node',['../classyask_1_1yc__node__factory.html#ad7ad1075e359ddf1100ec25432b869b3',1,'yask::yc_node_factory::new_number_node()'],['../classyask_1_1yc__solution__base.html#aa807cfa83dd78deda5d32249acecbe78',1,'yask::yc_solution_base::new_number_node()']]], ['new_5for_5fnode_27',['new_or_node',['../classyask_1_1yc__node__factory.html#a73b4735896225d361d2a7c450226162d',1,'yask::yc_node_factory']]], - ['new_5frelative_5fgrid_5fpoint_28',['new_relative_grid_point',['../classyask_1_1yc__var.html#a01803ca6d935b1d67093ee39192ecd39',1,'yask::yc_var::new_relative_grid_point(const std::vector< int > &dim_offsets)'],['../classyask_1_1yc__var.html#a69b1d05f4337b58afd9e5715663456ce',1,'yask::yc_var::new_relative_grid_point(const std::initializer_list< int > &dim_offsets)']]], + ['new_5frelative_5fgrid_5fpoint_28',['new_relative_grid_point',['../classyask_1_1yc__var.html#acbffe1eb59cc722cc61e03fc66e19d12',1,'yask::yc_var::new_relative_grid_point(const std::vector< int > &dim_offsets)=0'],['../classyask_1_1yc__var.html#ab93ec0a994302a77c44388ee90946812',1,'yask::yc_var::new_relative_grid_point(const std::initializer_list< int > &dim_offsets)=0']]], ['new_5frelative_5fvar_5fpoint_29',['new_relative_var_point',['../classyask_1_1yc__var.html#a08bd94bd9934eb4cec308638cfffe53d',1,'yask::yc_var::new_relative_var_point(const std::vector< int > &dim_offsets)=0'],['../classyask_1_1yc__var.html#a3d1dc10ae85f73f74203ce405618ae5e',1,'yask::yc_var::new_relative_var_point(const std::initializer_list< int > &dim_offsets)=0']]], ['new_5fscratch_5fgrid_30',['new_scratch_grid',['../classyask_1_1yc__solution.html#a9e30883d0a97aa0ef5af6832f67bd863',1,'yask::yc_solution::new_scratch_grid(const std::string &name, const std::vector< yc_index_node_ptr > &dims)'],['../classyask_1_1yc__solution.html#ae24afb1d88e355707c2113f749445329',1,'yask::yc_solution::new_scratch_grid(const std::string &name, const std::initializer_list< yc_index_node_ptr > &dims)']]], ['new_5fscratch_5fvar_31',['new_scratch_var',['../classyask_1_1yc__solution.html#aa3f1bd432ae6b977d8a150e319856228',1,'yask::yc_solution::new_scratch_var(const std::string &name, const std::initializer_list< yc_index_node_ptr > &dims)=0'],['../classyask_1_1yc__solution.html#ac025854d8d7a0e4c62753dda67ff9e39',1,'yask::yc_solution::new_scratch_var(const std::string &name, const std::vector< yc_index_node_ptr > &dims)=0']]], diff --git a/docs/api/html/search/functions_a.js b/docs/api/html/search/functions_a.js index 4588e354..2e5c6aa4 100644 --- a/docs/api/html/search/functions_a.js +++ b/docs/api/html/search/functions_a.js @@ -28,7 +28,7 @@ var searchData= ['new_5fnull_5foutput_25',['new_null_output',['../classyask_1_1yask__output__factory.html#ab0bfefeb356653f097800f17fa659399',1,'yask::yask_output_factory']]], ['new_5fnumber_5fnode_26',['new_number_node',['../classyask_1_1yc__node__factory.html#ad7ad1075e359ddf1100ec25432b869b3',1,'yask::yc_node_factory::new_number_node()'],['../classyask_1_1yc__solution__base.html#aa807cfa83dd78deda5d32249acecbe78',1,'yask::yc_solution_base::new_number_node()']]], ['new_5for_5fnode_27',['new_or_node',['../classyask_1_1yc__node__factory.html#a73b4735896225d361d2a7c450226162d',1,'yask::yc_node_factory']]], - ['new_5frelative_5fgrid_5fpoint_28',['new_relative_grid_point',['../classyask_1_1yc__var.html#a01803ca6d935b1d67093ee39192ecd39',1,'yask::yc_var::new_relative_grid_point(const std::vector< int > &dim_offsets)'],['../classyask_1_1yc__var.html#a69b1d05f4337b58afd9e5715663456ce',1,'yask::yc_var::new_relative_grid_point(const std::initializer_list< int > &dim_offsets)']]], + ['new_5frelative_5fgrid_5fpoint_28',['new_relative_grid_point',['../classyask_1_1yc__var.html#acbffe1eb59cc722cc61e03fc66e19d12',1,'yask::yc_var::new_relative_grid_point(const std::vector< int > &dim_offsets)=0'],['../classyask_1_1yc__var.html#ab93ec0a994302a77c44388ee90946812',1,'yask::yc_var::new_relative_grid_point(const std::initializer_list< int > &dim_offsets)=0']]], ['new_5frelative_5fvar_5fpoint_29',['new_relative_var_point',['../classyask_1_1yc__var.html#a08bd94bd9934eb4cec308638cfffe53d',1,'yask::yc_var::new_relative_var_point(const std::vector< int > &dim_offsets)=0'],['../classyask_1_1yc__var.html#a3d1dc10ae85f73f74203ce405618ae5e',1,'yask::yc_var::new_relative_var_point(const std::initializer_list< int > &dim_offsets)=0']]], ['new_5fscratch_5fgrid_30',['new_scratch_grid',['../classyask_1_1yc__solution.html#a9e30883d0a97aa0ef5af6832f67bd863',1,'yask::yc_solution::new_scratch_grid(const std::string &name, const std::vector< yc_index_node_ptr > &dims)'],['../classyask_1_1yc__solution.html#ae24afb1d88e355707c2113f749445329',1,'yask::yc_solution::new_scratch_grid(const std::string &name, const std::initializer_list< yc_index_node_ptr > &dims)']]], ['new_5fscratch_5fvar_31',['new_scratch_var',['../classyask_1_1yc__solution.html#aa3f1bd432ae6b977d8a150e319856228',1,'yask::yc_solution::new_scratch_var(const std::string &name, const std::initializer_list< yc_index_node_ptr > &dims)=0'],['../classyask_1_1yc__solution.html#ac025854d8d7a0e4c62753dda67ff9e39',1,'yask::yc_solution::new_scratch_var(const std::string &name, const std::vector< yc_index_node_ptr > &dims)=0']]], diff --git a/docs/api/html/yask__common__api_8hpp.html b/docs/api/html/yask__common__api_8hpp.html index aab9e7ee..4f3c318a 100644 --- a/docs/api/html/yask__common__api_8hpp.html +++ b/docs/api/html/yask__common__api_8hpp.html @@ -228,7 +228,7 @@ diff --git a/docs/api/html/yask__common__api_8hpp_source.html b/docs/api/html/yask__common__api_8hpp_source.html index fbf28994..acf56f44 100644 --- a/docs/api/html/yask__common__api_8hpp_source.html +++ b/docs/api/html/yask__common__api_8hpp_source.html @@ -738,7 +738,7 @@ diff --git a/docs/api/html/yask__compiler__api_8hpp.html b/docs/api/html/yask__compiler__api_8hpp.html index e8139e52..6076aa4c 100644 --- a/docs/api/html/yask__compiler__api_8hpp.html +++ b/docs/api/html/yask__compiler__api_8hpp.html @@ -190,7 +190,7 @@

                                                                                diff --git a/docs/api/html/yask__compiler__api_8hpp_source.html b/docs/api/html/yask__compiler__api_8hpp_source.html index 736f5533..2de430d0 100644 --- a/docs/api/html/yask__compiler__api_8hpp_source.html +++ b/docs/api/html/yask__compiler__api_8hpp_source.html @@ -512,162 +512,154 @@
                                                                                873 #endif
                                                                                874
                                                                                - -
                                                                                -
                                                                                878 new_relative_grid_point(const std::vector<int>& dim_offsets) {
                                                                                -
                                                                                879 return new_relative_var_point(dim_offsets);
                                                                                -
                                                                                880 }
                                                                                -
                                                                                -
                                                                                881 #ifndef SWIG
                                                                                - - -
                                                                                -
                                                                                885 new_relative_grid_point(const std::initializer_list<int>& dim_offsets) {
                                                                                -
                                                                                886 return new_relative_var_point(dim_offsets);
                                                                                -
                                                                                887 }
                                                                                -
                                                                                -
                                                                                888 #endif
                                                                                -
                                                                                889
                                                                                -
                                                                                890 }; // yc_var.
                                                                                - -
                                                                                891
                                                                                -
                                                                                893
                                                                                -
                                                                                - -
                                                                                926 private:
                                                                                -
                                                                                927 yc_var_ptr _var;
                                                                                -
                                                                                928
                                                                                -
                                                                                929 public:
                                                                                -
                                                                                930
                                                                                -
                                                                                932
                                                                                -
                                                                                -
                                                                                936 yc_var_proxy(const std::string& name,
                                                                                -
                                                                                939 yc_solution_ptr soln,
                                                                                -
                                                                                941 const std::vector< yc_index_node_ptr > &dims,
                                                                                -
                                                                                944 bool is_scratch = false) {
                                                                                -
                                                                                946 if (is_scratch)
                                                                                -
                                                                                947 _var = soln->new_scratch_var(name, dims);
                                                                                -
                                                                                948 else
                                                                                -
                                                                                949 _var = soln->new_var(name, dims);
                                                                                -
                                                                                950 }
                                                                                -
                                                                                -
                                                                                951
                                                                                -
                                                                                952 #ifndef SWIG
                                                                                -
                                                                                954
                                                                                -
                                                                                -
                                                                                959 yc_var_proxy(const std::string& name,
                                                                                -
                                                                                962 yc_solution_ptr soln,
                                                                                -
                                                                                964 const std::initializer_list< yc_index_node_ptr > &dims,
                                                                                -
                                                                                967 bool is_scratch = false) {
                                                                                -
                                                                                969 if (is_scratch)
                                                                                -
                                                                                970 _var = soln->new_scratch_var(name, dims);
                                                                                -
                                                                                971 else
                                                                                -
                                                                                972 _var = soln->new_var(name, dims);
                                                                                -
                                                                                973 }
                                                                                -
                                                                                -
                                                                                974 #endif
                                                                                -
                                                                                975
                                                                                -
                                                                                977
                                                                                -
                                                                                -
                                                                                980 yc_var_proxy(const std::string& name,
                                                                                -
                                                                                983 yc_solution_ptr soln) {
                                                                                -
                                                                                985 _var = soln->new_var(name, { });
                                                                                -
                                                                                986 }
                                                                                -
                                                                                -
                                                                                987
                                                                                -
                                                                                989
                                                                                -
                                                                                993 yc_var_proxy(yc_var_ptr& var) : _var(var) { }
                                                                                -
                                                                                994
                                                                                -
                                                                                996
                                                                                -
                                                                                1000 yc_var_proxy(yc_var_proxy& proxy) : _var(proxy.get_var()) { }
                                                                                -
                                                                                1001
                                                                                -
                                                                                1003 virtual ~yc_var_proxy() { }
                                                                                -
                                                                                1004
                                                                                -
                                                                                - -
                                                                                1007 return _var;
                                                                                -
                                                                                1008 }
                                                                                -
                                                                                -
                                                                                1009
                                                                                -
                                                                                -
                                                                                1011 virtual yc_var_ptr get_var() const {
                                                                                -
                                                                                1012 return _var;
                                                                                -
                                                                                1013 }
                                                                                -
                                                                                -
                                                                                1014
                                                                                -
                                                                                1016
                                                                                -
                                                                                1022 virtual yc_var_point_node_ptr
                                                                                -
                                                                                -
                                                                                1023 operator()(const std::vector<yc_number_node_ptr>& index_exprs) {
                                                                                -
                                                                                1024 return _var->new_var_point(index_exprs);
                                                                                -
                                                                                1025 }
                                                                                -
                                                                                -
                                                                                1026
                                                                                -
                                                                                1027 #ifndef SWIG
                                                                                -
                                                                                1029
                                                                                -
                                                                                1036 virtual yc_var_point_node_ptr
                                                                                -
                                                                                -
                                                                                1037 operator()(const std::initializer_list<yc_number_node_ptr>& index_exprs) {
                                                                                -
                                                                                1038 return _var->new_var_point(index_exprs);
                                                                                -
                                                                                1039 }
                                                                                -
                                                                                -
                                                                                1040
                                                                                -
                                                                                1042
                                                                                -
                                                                                - -
                                                                                1051 const yc_number_any_arg i2 = nullptr,
                                                                                -
                                                                                1052 const yc_number_any_arg i3 = nullptr,
                                                                                -
                                                                                1053 const yc_number_any_arg i4 = nullptr,
                                                                                -
                                                                                1054 const yc_number_any_arg i5 = nullptr,
                                                                                -
                                                                                1055 const yc_number_any_arg i6 = nullptr) {
                                                                                -
                                                                                1056 std::vector<yc_number_node_ptr> args;
                                                                                -
                                                                                1057 if (i1)
                                                                                -
                                                                                1058 args.push_back(i1);
                                                                                -
                                                                                1059 if (i2)
                                                                                -
                                                                                1060 args.push_back(i2);
                                                                                -
                                                                                1061 if (i3)
                                                                                -
                                                                                1062 args.push_back(i3);
                                                                                -
                                                                                1063 if (i4)
                                                                                -
                                                                                1064 args.push_back(i4);
                                                                                -
                                                                                1065 if (i5)
                                                                                -
                                                                                1066 args.push_back(i5);
                                                                                -
                                                                                1067 if (i6)
                                                                                -
                                                                                1068 args.push_back(i6);
                                                                                -
                                                                                1069 return _var->new_var_point(args);
                                                                                -
                                                                                1070 }
                                                                                -
                                                                                -
                                                                                1071
                                                                                -
                                                                                1073
                                                                                -
                                                                                -
                                                                                1080 virtual operator yc_number_ptr_arg() {
                                                                                -
                                                                                1081 return _var->new_var_point({});
                                                                                -
                                                                                1082 }
                                                                                -
                                                                                -
                                                                                1083
                                                                                -
                                                                                1085
                                                                                -
                                                                                - -
                                                                                1093 return _var->new_var_point({i1});
                                                                                -
                                                                                1094 }
                                                                                -
                                                                                -
                                                                                1095
                                                                                -
                                                                                1096 #endif
                                                                                -
                                                                                1097
                                                                                -
                                                                                1098 }; // yc_var_proxy.
                                                                                -
                                                                                1101
                                                                                - - - - - - - - -
                                                                                1113
                                                                                -
                                                                                1114} // namespace yask.
                                                                                -
                                                                                1115
                                                                                -
                                                                                1116// More solution-based objects.
                                                                                -
                                                                                1117#include "aux/yc_solution_api.hpp"
                                                                                + +
                                                                                878 new_relative_grid_point(const std::vector<int>& dim_offsets) =0;
                                                                                +
                                                                                879 #ifndef SWIG
                                                                                + + +
                                                                                883 new_relative_grid_point(const std::initializer_list<int>& dim_offsets) =0;
                                                                                +
                                                                                884 #endif
                                                                                +
                                                                                885
                                                                                +
                                                                                886 }; // yc_var.
                                                                                +
                                                                                +
                                                                                887
                                                                                +
                                                                                889
                                                                                +
                                                                                + +
                                                                                922 private:
                                                                                +
                                                                                923 yc_var_ptr _var;
                                                                                +
                                                                                924
                                                                                +
                                                                                925 public:
                                                                                +
                                                                                926
                                                                                +
                                                                                928
                                                                                +
                                                                                +
                                                                                932 yc_var_proxy(const std::string& name,
                                                                                +
                                                                                935 yc_solution_ptr soln,
                                                                                +
                                                                                937 const std::vector< yc_index_node_ptr > &dims,
                                                                                +
                                                                                940 bool is_scratch = false) {
                                                                                +
                                                                                942 if (is_scratch)
                                                                                +
                                                                                943 _var = soln->new_scratch_var(name, dims);
                                                                                +
                                                                                944 else
                                                                                +
                                                                                945 _var = soln->new_var(name, dims);
                                                                                +
                                                                                946 }
                                                                                +
                                                                                +
                                                                                947
                                                                                +
                                                                                948 #ifndef SWIG
                                                                                +
                                                                                950
                                                                                +
                                                                                +
                                                                                955 yc_var_proxy(const std::string& name,
                                                                                +
                                                                                958 yc_solution_ptr soln,
                                                                                +
                                                                                960 const std::initializer_list< yc_index_node_ptr > &dims,
                                                                                +
                                                                                963 bool is_scratch = false) {
                                                                                +
                                                                                965 if (is_scratch)
                                                                                +
                                                                                966 _var = soln->new_scratch_var(name, dims);
                                                                                +
                                                                                967 else
                                                                                +
                                                                                968 _var = soln->new_var(name, dims);
                                                                                +
                                                                                969 }
                                                                                +
                                                                                +
                                                                                970 #endif
                                                                                +
                                                                                971
                                                                                +
                                                                                973
                                                                                +
                                                                                +
                                                                                976 yc_var_proxy(const std::string& name,
                                                                                +
                                                                                979 yc_solution_ptr soln) {
                                                                                +
                                                                                981 _var = soln->new_var(name, { });
                                                                                +
                                                                                982 }
                                                                                +
                                                                                +
                                                                                983
                                                                                +
                                                                                985
                                                                                +
                                                                                989 yc_var_proxy(yc_var_ptr& var) : _var(var) { }
                                                                                +
                                                                                990
                                                                                +
                                                                                992
                                                                                +
                                                                                996 yc_var_proxy(yc_var_proxy& proxy) : _var(proxy.get_var()) { }
                                                                                +
                                                                                997
                                                                                +
                                                                                999 virtual ~yc_var_proxy() { }
                                                                                +
                                                                                1000
                                                                                +
                                                                                + +
                                                                                1003 return _var;
                                                                                +
                                                                                1004 }
                                                                                +
                                                                                +
                                                                                1005
                                                                                +
                                                                                +
                                                                                1007 virtual yc_var_ptr get_var() const {
                                                                                +
                                                                                1008 return _var;
                                                                                +
                                                                                1009 }
                                                                                +
                                                                                +
                                                                                1010
                                                                                +
                                                                                1012
                                                                                +
                                                                                1018 virtual yc_var_point_node_ptr
                                                                                +
                                                                                +
                                                                                1019 operator()(const std::vector<yc_number_node_ptr>& index_exprs) {
                                                                                +
                                                                                1020 return _var->new_var_point(index_exprs);
                                                                                +
                                                                                1021 }
                                                                                +
                                                                                +
                                                                                1022
                                                                                +
                                                                                1023 #ifndef SWIG
                                                                                +
                                                                                1025
                                                                                +
                                                                                1032 virtual yc_var_point_node_ptr
                                                                                +
                                                                                +
                                                                                1033 operator()(const std::initializer_list<yc_number_node_ptr>& index_exprs) {
                                                                                +
                                                                                1034 return _var->new_var_point(index_exprs);
                                                                                +
                                                                                1035 }
                                                                                +
                                                                                +
                                                                                1036
                                                                                +
                                                                                1038
                                                                                +
                                                                                + +
                                                                                1047 const yc_number_any_arg i2 = nullptr,
                                                                                +
                                                                                1048 const yc_number_any_arg i3 = nullptr,
                                                                                +
                                                                                1049 const yc_number_any_arg i4 = nullptr,
                                                                                +
                                                                                1050 const yc_number_any_arg i5 = nullptr,
                                                                                +
                                                                                1051 const yc_number_any_arg i6 = nullptr) {
                                                                                +
                                                                                1052 std::vector<yc_number_node_ptr> args;
                                                                                +
                                                                                1053 if (i1)
                                                                                +
                                                                                1054 args.push_back(i1);
                                                                                +
                                                                                1055 if (i2)
                                                                                +
                                                                                1056 args.push_back(i2);
                                                                                +
                                                                                1057 if (i3)
                                                                                +
                                                                                1058 args.push_back(i3);
                                                                                +
                                                                                1059 if (i4)
                                                                                +
                                                                                1060 args.push_back(i4);
                                                                                +
                                                                                1061 if (i5)
                                                                                +
                                                                                1062 args.push_back(i5);
                                                                                +
                                                                                1063 if (i6)
                                                                                +
                                                                                1064 args.push_back(i6);
                                                                                +
                                                                                1065 return _var->new_var_point(args);
                                                                                +
                                                                                1066 }
                                                                                +
                                                                                +
                                                                                1067
                                                                                +
                                                                                1069
                                                                                +
                                                                                +
                                                                                1076 virtual operator yc_number_ptr_arg() {
                                                                                +
                                                                                1077 return _var->new_var_point({});
                                                                                +
                                                                                1078 }
                                                                                +
                                                                                +
                                                                                1079
                                                                                +
                                                                                1081
                                                                                +
                                                                                + +
                                                                                1089 return _var->new_var_point({i1});
                                                                                +
                                                                                1090 }
                                                                                +
                                                                                +
                                                                                1091
                                                                                +
                                                                                1092 #endif
                                                                                +
                                                                                1093
                                                                                +
                                                                                1094 }; // yc_var_proxy.
                                                                                +
                                                                                1097
                                                                                + + + + + + + + +
                                                                                1109
                                                                                +
                                                                                1110} // namespace yask.
                                                                                +
                                                                                1111
                                                                                +
                                                                                1112// More solution-based objects.
                                                                                +
                                                                                1113#include "aux/yc_solution_api.hpp"
                                                                                Base class for all boolean AST nodes.
                                                                                Definition yc_node_api.hpp:256
                                                                                Equation node.
                                                                                Definition yc_node_api.hpp:149
                                                                                @@ -732,21 +724,20 @@
                                                                                YASK_DEPRECATED void clear_clustering()
                                                                                [Deprecated] Does nothing; will be removed in future versions.
                                                                                Definition yask_compiler_api.hpp:686
                                                                                virtual void set_debug_output(yask_output_ptr debug)=0
                                                                                Set object to receive debug output.
                                                                                A reference to a point in a var.
                                                                                Definition yc_node_api.hpp:285
                                                                                -
                                                                                A wrapper or "proxy" class around a yc_var pointer.
                                                                                Definition yask_compiler_api.hpp:925
                                                                                -
                                                                                virtual yc_var_point_node_ptr operator()(const yc_number_any_arg i1=nullptr, const yc_number_any_arg i2=nullptr, const yc_number_any_arg i3=nullptr, const yc_number_any_arg i4=nullptr, const yc_number_any_arg i5=nullptr, const yc_number_any_arg i6=nullptr)
                                                                                Create an expression for a point in a 1-6 dim var.
                                                                                Definition yask_compiler_api.hpp:1050
                                                                                -
                                                                                virtual yc_var_ptr get_var()
                                                                                Get the underlying yc_var pointer.
                                                                                Definition yask_compiler_api.hpp:1006
                                                                                -
                                                                                virtual yc_var_point_node_ptr operator[](const yc_number_any_arg i1)
                                                                                Create an expression for a point in a one-dim (array) var.
                                                                                Definition yask_compiler_api.hpp:1092
                                                                                -
                                                                                yc_var_proxy(const std::string &name, yc_solution_ptr soln)
                                                                                Contructor for a simple scalar YASK variable.
                                                                                Definition yask_compiler_api.hpp:980
                                                                                -
                                                                                virtual ~yc_var_proxy()
                                                                                Provide a virtual destructor.
                                                                                Definition yask_compiler_api.hpp:1003
                                                                                -
                                                                                yc_var_proxy(yc_var_ptr &var)
                                                                                Contructor taking an existing YASK variable.
                                                                                Definition yask_compiler_api.hpp:993
                                                                                -
                                                                                yc_var_proxy(const std::string &name, yc_solution_ptr soln, const std::initializer_list< yc_index_node_ptr > &dims, bool is_scratch=false)
                                                                                Contructor taking an initializer_list of index vars.
                                                                                Definition yask_compiler_api.hpp:959
                                                                                -
                                                                                virtual yc_var_ptr get_var() const
                                                                                Get the underlying yc_var pointer.
                                                                                Definition yask_compiler_api.hpp:1011
                                                                                -
                                                                                virtual yc_var_point_node_ptr operator()(const std::vector< yc_number_node_ptr > &index_exprs)
                                                                                Create an expression for a point in a YASK variable.
                                                                                Definition yask_compiler_api.hpp:1023
                                                                                -
                                                                                virtual yc_var_point_node_ptr operator()(const std::initializer_list< yc_number_node_ptr > &index_exprs)
                                                                                Create an expression for a point in a var.
                                                                                Definition yask_compiler_api.hpp:1037
                                                                                -
                                                                                yc_var_proxy(const std::string &name, yc_solution_ptr soln, const std::vector< yc_index_node_ptr > &dims, bool is_scratch=false)
                                                                                Contructor taking a vector of index vars.
                                                                                Definition yask_compiler_api.hpp:936
                                                                                -
                                                                                yc_var_proxy(yc_var_proxy &proxy)
                                                                                Contructor taking an existing proxy.
                                                                                Definition yask_compiler_api.hpp:1000
                                                                                +
                                                                                A wrapper or "proxy" class around a yc_var pointer.
                                                                                Definition yask_compiler_api.hpp:921
                                                                                +
                                                                                virtual yc_var_point_node_ptr operator()(const yc_number_any_arg i1=nullptr, const yc_number_any_arg i2=nullptr, const yc_number_any_arg i3=nullptr, const yc_number_any_arg i4=nullptr, const yc_number_any_arg i5=nullptr, const yc_number_any_arg i6=nullptr)
                                                                                Create an expression for a point in a 1-6 dim var.
                                                                                Definition yask_compiler_api.hpp:1046
                                                                                +
                                                                                virtual yc_var_ptr get_var()
                                                                                Get the underlying yc_var pointer.
                                                                                Definition yask_compiler_api.hpp:1002
                                                                                +
                                                                                virtual yc_var_point_node_ptr operator[](const yc_number_any_arg i1)
                                                                                Create an expression for a point in a one-dim (array) var.
                                                                                Definition yask_compiler_api.hpp:1088
                                                                                +
                                                                                yc_var_proxy(const std::string &name, yc_solution_ptr soln)
                                                                                Contructor for a simple scalar YASK variable.
                                                                                Definition yask_compiler_api.hpp:976
                                                                                +
                                                                                virtual ~yc_var_proxy()
                                                                                Provide a virtual destructor.
                                                                                Definition yask_compiler_api.hpp:999
                                                                                +
                                                                                yc_var_proxy(yc_var_ptr &var)
                                                                                Contructor taking an existing YASK variable.
                                                                                Definition yask_compiler_api.hpp:989
                                                                                +
                                                                                yc_var_proxy(const std::string &name, yc_solution_ptr soln, const std::initializer_list< yc_index_node_ptr > &dims, bool is_scratch=false)
                                                                                Contructor taking an initializer_list of index vars.
                                                                                Definition yask_compiler_api.hpp:955
                                                                                +
                                                                                virtual yc_var_ptr get_var() const
                                                                                Get the underlying yc_var pointer.
                                                                                Definition yask_compiler_api.hpp:1007
                                                                                +
                                                                                virtual yc_var_point_node_ptr operator()(const std::vector< yc_number_node_ptr > &index_exprs)
                                                                                Create an expression for a point in a YASK variable.
                                                                                Definition yask_compiler_api.hpp:1019
                                                                                +
                                                                                virtual yc_var_point_node_ptr operator()(const std::initializer_list< yc_number_node_ptr > &index_exprs)
                                                                                Create an expression for a point in a var.
                                                                                Definition yask_compiler_api.hpp:1033
                                                                                +
                                                                                yc_var_proxy(const std::string &name, yc_solution_ptr soln, const std::vector< yc_index_node_ptr > &dims, bool is_scratch=false)
                                                                                Contructor taking a vector of index vars.
                                                                                Definition yask_compiler_api.hpp:932
                                                                                +
                                                                                yc_var_proxy(yc_var_proxy &proxy)
                                                                                Contructor taking an existing proxy.
                                                                                Definition yask_compiler_api.hpp:996
                                                                                A compile-time data variable.
                                                                                Definition yask_compiler_api.hpp:765
                                                                                -
                                                                                YASK_DEPRECATED yc_var_point_node_ptr new_relative_grid_point(const std::vector< int > &dim_offsets)
                                                                                [Deprecated] Use new_relative_var_point().
                                                                                Definition yask_compiler_api.hpp:878
                                                                                virtual YASK_DEPRECATED yc_var_point_node_ptr new_relative_var_point(const std::vector< int > &dim_offsets)=0
                                                                                [Deprecated] Use new_var_point().
                                                                                virtual string_vec get_dim_names() const =0
                                                                                Get all the dimensions in this var.
                                                                                YASK_DEPRECATED yc_var_point_node_ptr new_grid_point(const std::initializer_list< yc_number_node_ptr > &index_exprs)
                                                                                [Deprecated] Use new_var_point().
                                                                                Definition yask_compiler_api.hpp:870
                                                                                @@ -754,12 +745,13 @@
                                                                                virtual YASK_DEPRECATED yc_var_point_node_ptr new_relative_var_point(const std::initializer_list< int > &dim_offsets)=0
                                                                                [Deprecated] Use new_var_point().
                                                                                virtual void set_dynamic_step_alloc(bool is_dynamic)=0
                                                                                [Advanced] Set whether the allocation of the step dimension of this var can be modified at run-time.
                                                                                virtual bool is_dynamic_step_alloc() const =0
                                                                                [Advanced] Get whether the allocation of the step dimension of this var can be modified at run-time.
                                                                                -
                                                                                YASK_DEPRECATED yc_var_point_node_ptr new_relative_grid_point(const std::initializer_list< int > &dim_offsets)
                                                                                [Deprecated] Use new_relative_var_point().
                                                                                Definition yask_compiler_api.hpp:885
                                                                                virtual int get_num_dims() const =0
                                                                                Get the number of dimensions.
                                                                                YASK_DEPRECATED yc_var_point_node_ptr new_grid_point(const std::vector< yc_number_node_ptr > &index_exprs)
                                                                                [Deprecated] Use new_var_point().
                                                                                Definition yask_compiler_api.hpp:863
                                                                                virtual yc_var_point_node_ptr new_var_point(const std::vector< yc_number_node_ptr > &index_exprs)=0
                                                                                Create a reference to a point in this var.
                                                                                virtual const std::string & get_name() const =0
                                                                                Get the name of the var.
                                                                                +
                                                                                virtual YASK_DEPRECATED yc_var_point_node_ptr new_relative_grid_point(const std::initializer_list< int > &dim_offsets)=0
                                                                                [Deprecated] Use new_var_point().
                                                                                virtual yc_var_point_node_ptr new_var_point(const std::initializer_list< yc_number_node_ptr > &index_exprs)=0
                                                                                Create a reference to a point in this var.
                                                                                +
                                                                                virtual YASK_DEPRECATED yc_var_point_node_ptr new_relative_grid_point(const std::vector< int > &dim_offsets)=0
                                                                                [Deprecated] Use new_var_point().
                                                                                virtual void set_step_alloc_size(idx_t size)=0
                                                                                [Advanced] Set the current allocation in the step dimension of this var.
                                                                                YASK_INT64_T idx_t
                                                                                Type to use for indexing grids.
                                                                                Definition yask_common_api.hpp:86
                                                                                std::vector< std::string > string_vec
                                                                                Vector of strings.
                                                                                Definition yask_common_api.hpp:99
                                                                                @@ -774,16 +766,16 @@
                                                                                std::shared_ptr< yc_index_node > yc_index_node_ptr
                                                                                Shared pointer to yc_index_node.
                                                                                Definition yask_compiler_api.hpp:73
                                                                                #define YASK_DEPRECATED
                                                                                Deprecated attribute.
                                                                                Definition yask_common_api.hpp:60
                                                                                -
                                                                                YASK_DEPRECATED typedef yc_var_point_node yc_grid_point_node
                                                                                [Deprecated] Use yc_var_point_node.
                                                                                Definition yask_compiler_api.hpp:1109
                                                                                -
                                                                                YASK_DEPRECATED typedef yc_var_point_node_ptr yc_grid_point_node_ptr
                                                                                [Deprecated] Use yc_var_point_node_ptr.
                                                                                Definition yask_compiler_api.hpp:1112
                                                                                -
                                                                                YASK_DEPRECATED typedef yc_var yc_grid
                                                                                [Deprecated] Use yc_var.
                                                                                Definition yask_compiler_api.hpp:1103
                                                                                -
                                                                                YASK_DEPRECATED typedef yc_var_ptr yc_grid_ptr
                                                                                [Deprecated] Use yc_var_ptr.
                                                                                Definition yask_compiler_api.hpp:1106
                                                                                +
                                                                                YASK_DEPRECATED typedef yc_var_point_node yc_grid_point_node
                                                                                [Deprecated] Use yc_var_point_node.
                                                                                Definition yask_compiler_api.hpp:1105
                                                                                +
                                                                                YASK_DEPRECATED typedef yc_var_point_node_ptr yc_grid_point_node_ptr
                                                                                [Deprecated] Use yc_var_point_node_ptr.
                                                                                Definition yask_compiler_api.hpp:1108
                                                                                +
                                                                                YASK_DEPRECATED typedef yc_var yc_grid
                                                                                [Deprecated] Use yc_var.
                                                                                Definition yask_compiler_api.hpp:1099
                                                                                +
                                                                                YASK_DEPRECATED typedef yc_var_ptr yc_grid_ptr
                                                                                [Deprecated] Use yc_var_ptr.
                                                                                Definition yask_compiler_api.hpp:1102
                                                                                diff --git a/docs/api/html/yask__kernel__api_8hpp.html b/docs/api/html/yask__kernel__api_8hpp.html index 01c7f9ff..0de830c7 100644 --- a/docs/api/html/yask__kernel__api_8hpp.html +++ b/docs/api/html/yask__kernel__api_8hpp.html @@ -131,7 +131,7 @@ diff --git a/docs/api/html/yask__kernel__api_8hpp_source.html b/docs/api/html/yask__kernel__api_8hpp_source.html index 7391ba1a..fa82c2b9 100644 --- a/docs/api/html/yask__kernel__api_8hpp_source.html +++ b/docs/api/html/yask__kernel__api_8hpp_source.html @@ -285,7 +285,7 @@ diff --git a/docs/api/html/yc__node__api_8hpp.html b/docs/api/html/yc__node__api_8hpp.html index 097e4f50..5f84cc06 100644 --- a/docs/api/html/yc__node__api_8hpp.html +++ b/docs/api/html/yc__node__api_8hpp.html @@ -451,7 +451,7 @@ diff --git a/docs/api/html/yc__node__api_8hpp_source.html b/docs/api/html/yc__node__api_8hpp_source.html index b5aaa28d..d23e8495 100644 --- a/docs/api/html/yc__node__api_8hpp_source.html +++ b/docs/api/html/yc__node__api_8hpp_source.html @@ -920,7 +920,7 @@ diff --git a/docs/api/html/yc__solution__api_8hpp.html b/docs/api/html/yc__solution__api_8hpp.html index d9a21f81..b88db462 100644 --- a/docs/api/html/yc__solution__api_8hpp.html +++ b/docs/api/html/yc__solution__api_8hpp.html @@ -128,7 +128,7 @@ diff --git a/docs/api/html/yc__solution__api_8hpp_source.html b/docs/api/html/yc__solution__api_8hpp_source.html index 421b08de..36553ad4 100644 --- a/docs/api/html/yc__solution__api_8hpp_source.html +++ b/docs/api/html/yc__solution__api_8hpp_source.html @@ -307,7 +307,7 @@ diff --git a/docs/api/html/yk__solution__api_8hpp.html b/docs/api/html/yk__solution__api_8hpp.html index 169530ca..887b4915 100644 --- a/docs/api/html/yk__solution__api_8hpp.html +++ b/docs/api/html/yk__solution__api_8hpp.html @@ -111,7 +111,7 @@ diff --git a/docs/api/html/yk__solution__api_8hpp_source.html b/docs/api/html/yk__solution__api_8hpp_source.html index a4399963..9e1cdfca 100644 --- a/docs/api/html/yk__solution__api_8hpp_source.html +++ b/docs/api/html/yk__solution__api_8hpp_source.html @@ -689,7 +689,7 @@ diff --git a/docs/api/html/yk__var__api_8hpp.html b/docs/api/html/yk__var__api_8hpp.html index f1d4155c..cc0eeb29 100644 --- a/docs/api/html/yk__var__api_8hpp.html +++ b/docs/api/html/yk__var__api_8hpp.html @@ -95,7 +95,7 @@ diff --git a/docs/api/html/yk__var__api_8hpp_source.html b/docs/api/html/yk__var__api_8hpp_source.html index 37e2b8b7..50906fe2 100644 --- a/docs/api/html/yk__var__api_8hpp_source.html +++ b/docs/api/html/yk__var__api_8hpp_source.html @@ -641,7 +641,7 @@ diff --git a/include/yask_compiler_api.hpp b/include/yask_compiler_api.hpp index 0b80a772..60bf76d1 100644 --- a/include/yask_compiler_api.hpp +++ b/include/yask_compiler_api.hpp @@ -872,19 +872,15 @@ namespace yask { } #endif - /// **[Deprecated]** Use new_relative_var_point(). + /// **[Deprecated]** Use new_var_point(). YASK_DEPRECATED - inline yc_var_point_node_ptr - new_relative_grid_point(const std::vector& dim_offsets) { - return new_relative_var_point(dim_offsets); - } + virtual yc_var_point_node_ptr + new_relative_grid_point(const std::vector& dim_offsets) =0; #ifndef SWIG - /// **[Deprecated]** Use new_relative_var_point(). + /// **[Deprecated]** Use new_var_point(). YASK_DEPRECATED - inline yc_var_point_node_ptr - new_relative_grid_point(const std::initializer_list& dim_offsets) { - return new_relative_var_point(dim_offsets); - } + virtual yc_var_point_node_ptr + new_relative_grid_point(const std::initializer_list& dim_offsets) =0; #endif }; // yc_var. diff --git a/src/common/common.mk b/src/common/common.mk index 7f5cafdf..88fba652 100644 --- a/src/common/common.mk +++ b/src/common/common.mk @@ -83,8 +83,8 @@ RUN_PYTHON := $(RUN_PREFIX) \ env PYTHONPATH=$(LIB_DIR):$(LIB_OUT_DIR):$(PY_OUT_DIR):$(YASK_DIR):$(PYTHONPATH) $(PYTHON) # Find include path needed for python interface. -# NB: constructing string inside print() to work for python 2 or 3. -PYINC := $(addprefix -I,$(shell $(PYTHON) -c 'import distutils.sysconfig; print(distutils.sysconfig.get_python_inc() + " " + distutils.sysconfig.get_python_inc(plat_specific=1))')) +PYINC := $(addprefix -I,$(shell $(PYTHON) -c \ + 'from sysconfig import get_paths as gp; print(gp()["include"],gp()["platinclude"])')) # Function to check for pre-defined compiler macro. # Invokes compiler using 1st arg. @@ -113,10 +113,24 @@ SWIG_GCCFLAGS := -DYASK_DEPRECATED='' # Define deprecated macro used by SWIG. DBL_EPSILON_CXXFLAG := -DDBL_EPSILON=2.2204460492503131e-16 +#### Some key settings for building kernel libs and apps. + # Determine default architecture by running kernel script w/special knob. # (Do not assume 'yask.sh' has been installed in $(BIN_OUT_DIR) yet.) arch ?= $(shell $(BASH) $(SRC_DIR)/kernel/yask.sh -show_arch) +# Set 'stencil' to the name of the YASK solution to build. +stencil ?= iso3dfd + +# Set 'real_bytes' to number of bytes in a float (4 or 8). +real_bytes ?= 4 + +# Set 'mpi=0' to build without MPI support. +mpi ?= 1 + +# Set 'omp=0' to build without OpenMP support. +omp ?= 1 + # Set 'TARGET' from 'arch', converting codenames and other aliases to ISA names. # 'TARGET' is the canonical target name. # The possible values must agree with those in the APIs and YASK compiler. @@ -136,6 +150,38 @@ else $(error Target not recognized; use arch=avx512, avx512-ymm, avx2, avx, knl, or intel64) endif +# Default compiler. +CXX := icpx +ifeq ($(shell which $(CXX)),) + CXX := g++ +endif + +# Compiler for kernel libs and apps. +YK_CXX := $(CXX) +ifeq ($(mpi),1) + YK_CXX := mpiicpx + ifeq ($(shell which $(YK_CXX)),) + YK_CXX := mpic++ + endif +endif +ifeq ($(shell which $(YK_CXX)),) + $(error "$(YK_CXX) not found in PATH, set YK_CXX to desired compiler") +endif +YK_CXXCMD := $(YK_CXX) + +# Disable ccache when using offloading in case CXX_PREFIX=ccache +# was set in the env. Can override by setting in gmake command line. +ifeq ($(offload),1) + CXX_PREFIX := +endif + +# Test compiler for pre-defined macros. +cxx_is_llvm_intel := $(call MACRO_DEF,$(YK_CXXCMD),__INTEL_LLVM_COMPILER) +cxx_is_clang := $(call MACRO_DEF,$(YK_CXXCMD),__clang__) +cxx_is_intel := $(call MACRO_DEF,$(YK_CXXCMD),__INTEL_COMPILER) +cxx_is_gnu := $(call MACRO_DEF,$(YK_CXXCMD),__GNUC__) +cxx_is_nv := $(call MACRO_DEF,$(YK_CXXCMD),__NVCOMPILER) + # Set 'offload=1' to build device-offload (e.g., GPU) library. # Set 'offload_usm=1' to build with unified shared mem model. # Set 'offload_arch' to the target offload architecture. @@ -145,29 +191,25 @@ ifeq ($(offload_usm),1) offload := 1 endif ifeq ($(offload),1) - offload_arch ?= spir64 + ifeq ($(cxx_is_llvm_intel),1) + offload_arch ?= spir64 + else ifeq ($(cxx_is_nv),1) + offload_arch ?= nv + endif endif -# Set 'stencil' to the name of the YASK solution to build. -stencil ?= iso3dfd - -# Set 'real_bytes' to number of bytes in a float (4 or 8). -real_bytes ?= 4 - -# Set 'mpi=0' to build without MPI support. -mpi ?= 1 - -# Set 'omp=0' to build without OpenMP support. -omp ?= 1 - # Main vars for naming the libraries and executables. # Set the following vars on 'make' cmd-line for corresponding effects: # - YK_STENCIL and/or YK_ARCH to name libraries and executables differently. YK_STENCIL ?= $(stencil)$(YK_STENCIL_SUFFIX) +YK_ARCH := $(arch) ifeq ($(offload),1) + ifeq ($(offload_arch),) + YK_ARCH := $(arch).offload + else YK_ARCH := $(arch).offload-$(offload_arch) + endif else - YK_ARCH := $(arch) endif YK_TAG := $(YK_STENCIL).$(YK_ARCH) @@ -176,19 +218,6 @@ YK_BASE := yask_kernel YK_EXT_BASE := $(YK_BASE).$(YK_TAG) YK_LIB := $(LIB_OUT_DIR)/lib$(YK_EXT_BASE)$(SO_SUFFIX) -# Compiler for building kernel lib and apps. -CXX := icpx -YK_CXX := $(CXX) -MPI_CXX := mpiicpc -ifeq ($(mpi),1) - YK_CXXCMD := $(MPI_CXX) -cxx=$(YK_CXX) -else - YK_CXXCMD := $(YK_CXX) -endif -ifeq ($(offload),1) - CXX_PREFIX := -endif - # Base compiler flags for building kernel lib and apps. ifeq ($(offload),0) YK_CXXDBG := -g diff --git a/src/common/common_utils.cpp b/src/common/common_utils.cpp index 94dab876..cc732b77 100644 --- a/src/common/common_utils.cpp +++ b/src/common/common_utils.cpp @@ -43,8 +43,11 @@ namespace yask { // fields to allow proper alphanumeric sorting // for numbers above 9 (at least up to 99). + // TODO: conform to Semantic Versioning: + // https://semver.org/. + // Format: "major.minor.patch[-alpha|-beta]". - const string version = "4.04.05"; + const string version = "4.04.06"; string yask_get_version_string() { return version; diff --git a/src/compiler/Makefile b/src/compiler/Makefile index bebe05bc..a252b098 100644 --- a/src/compiler/Makefile +++ b/src/compiler/Makefile @@ -59,10 +59,13 @@ YC_STENCIL_OBJS := $(addprefix $(YC_STENCIL_OBJ_DIR)/,$(addsuffix .o,$(YC_STENC # Compiler and default flags. YC_CXX := $(CXX) +ifeq ($(shell which $(YC_CXX)),) + $(error "$(YC_CXX) not found in PATH, set YC_CXX to desired compiler") +endif YC_CXXOPT ?= -O2 YC_CXXDBG ?= -g -YC_CXXFLAGS := -YC_CXXWARN := -Wall -Wno-unknown-pragmas -Wno-unused-variable +YC_CXXFLAGS := -DFORCE_INLINE_RECURSIVE= -DFORCE_INLINE= +YC_CXXWARN := -Wall -Wno-unused-variable YC_CXXFLAGS_API := -std=c++17 $(YC_CXXWARN) YC_CXX_INCFLAGS := $(addprefix -I,$(YC_INC_DIRS)) YC_CXX_INCFLAGS_API := $(addprefix -I,$(INC_DIR)) diff --git a/src/compiler/lib/Var.hpp b/src/compiler/lib/Var.hpp index 7a96e845..313120d1 100644 --- a/src/compiler/lib/Var.hpp +++ b/src/compiler/lib/Var.hpp @@ -339,6 +339,14 @@ namespace yask { std::vector dim_ofs_vec(dim_offsets); return new_relative_var_point(dim_ofs_vec); } + virtual yc_var_point_node_ptr + new_relative_grid_point(const std::vector& dim_offsets) { + return new_relative_var_point(dim_offsets); + } + virtual yc_var_point_node_ptr + new_relative_grid_point(const std::initializer_list& dim_offsets) { + return new_relative_var_point(dim_offsets); + } }; // A list of vars. This holds pointers to vars defined by the stencil diff --git a/src/kernel/Makefile b/src/kernel/Makefile index 165d8387..c3f6578c 100644 --- a/src/kernel/Makefile +++ b/src/kernel/Makefile @@ -57,12 +57,6 @@ check ?= 0 # binary size and performance, even if not used. Including the "trace_mem" # code has a large impact, even if not used. -# YASK compiler settings for offload. -ifeq ($(offload),1) - inner_loop_dim := 1 - outer_domain_layout := 1 -endif - # Main vars for running the YASK compiler. # Set the following vars on 'make' cmd-line for corresponding effects: # - YC_STENCIL to override stencil name passed to YASK compiler. @@ -74,6 +68,15 @@ else YC_TARGET ?= $(TARGET) endif +# YASK compiler settings for offload. +ifeq ($(offload),1) + inner_loop_dim := 1 + outer_domain_layout := 1 + ifeq ($(cxx_is_nv),1) + min_buffer_len := 99 + endif +endif + # Default settings based on target. ifeq ($(TARGET),knl) @@ -81,9 +84,8 @@ ifeq ($(TARGET),knl) # will fall-back to NUMA node 0 in "cache" memory mode. It will *NOT* do # the right thing by default in SNC-2 or SNC-4 clustering modes (using # either flat or cache memory modes, but these configurations are uncommon. - ICC_ISA ?= -xMIC-AVX512 - GXX_ISA ?= -march=knl - VEC_MACROS ?= USE_INTRIN512 + GXX_ISA := -march=knl + VEC_MACROS := USE_INTRIN512 ifeq ($(use_rcp),1) VEC_MACROS += USE_RCP28 endif @@ -92,38 +94,33 @@ ifeq ($(TARGET),knl) else ifeq ($(TARGET),avx512) - ICC_ISA ?= -xCORE-AVX512 - GXX_ISA ?= -mavx512f -mavx512vl -mavx512cd -mavx512bw - VEC_MACROS ?= USE_INTRIN512 + GXX_ISA := -mavx512f -mavx512vl -mavx512cd -mavx512bw + VEC_MACROS := USE_INTRIN512 ifeq ($(use_rcp),1) VEC_MACROS += USE_RCP14 endif else ifeq ($(TARGET),avx512-ymm) - ICC_ISA ?= -xCORE-AVX512 - GXX_ISA ?= -mavx512f -mavx512vl -mavx512cd -mavx512bw - VEC_MACROS ?= USE_INTRIN512LO + GXX_ISA := -mavx512f -mavx512vl -mavx512cd -mavx512bw + VEC_MACROS := USE_INTRIN512LO ifeq ($(use_rcp),1) VEC_MACROS += USE_RCP14 endif else ifeq ($(TARGET),avx2) - ICC_ISA ?= -xCORE-AVX2 - GXX_ISA ?= -mavx2 - VEC_MACROS ?= USE_INTRIN256 USE_AVX2 + GXX_ISA := -mavx2 + VEC_MACROS := USE_INTRIN256 USE_AVX2 else ifeq ($(TARGET),avx) - ICC_ISA ?= -xAVX - GXX_ISA ?= -mavx - VEC_MACROS ?= USE_INTRIN256 + GXX_ISA := -mavx + VEC_MACROS := USE_INTRIN256 else ifeq ($(TARGET),intel64) - ICC_ISA ?= -xHOST - GXX_ISA ?= + GXX_ISA := else @@ -351,16 +348,9 @@ endif # Compiler-specific settings. -# Create a compiler invocation to test for macro settings. -YK_CXX_TEST := $(YK_CXXCMD) -cxx_is_llvm_intel := $(call MACRO_DEF,$(YK_CXX_TEST),__INTEL_LLVM_COMPILER) -cxx_is_clang := $(call MACRO_DEF,$(YK_CXX_TEST),__clang__) -cxx_is_intel := $(call MACRO_DEF,$(YK_CXX_TEST),__INTEL_COMPILER) -cxx_is_gnu := $(call MACRO_DEF,$(YK_CXX_TEST),__GNUC__) - -# LLVM-based Intel compiler (icpx). +# LLVM-based Intel compiler (icpx or mpiicpx). ifeq ($(cxx_is_llvm_intel),1) - YK_CXXFLAGS2 += $(GXX_ISA) $(ICC_ISA) + YK_CXXFLAGS2 += $(GXX_ISA) ifeq ($(offload),1) YK_CXXDBG2 := -gline-tables-only endif @@ -374,17 +364,10 @@ ifeq ($(cxx_is_llvm_intel),1) MACROS += INTEL_OMP VEC_MACROS += NO_PRAGMA_VEC2 -# Clang compiler (clang++, not Intel version). -else ifeq ($(cxx_is_clang),1) - YK_CXXFLAGS2 += $(GXX_ISA) - YK_CXXWARN2 += -Wno-unknown-pragmas -Wno-unused-variable -Wno-unused-but-set-variable \ - -Wno-unused-const-variable -fno-color-diagnostics - VEC_MACROS += NO_SVML NO_PRAGMA_VEC2 - -# Classic Intel compiler (icpc, not LLVM-based). +# Classic Intel compiler (icpc or mpiicpc, not LLVM-based). else ifeq ($(cxx_is_intel),1) - YK_CXXFLAGS2 += $(ICC_ISA) + YK_CXXFLAGS2 += $(GXX_ISA) YK_CXXDBG2 += -debug extended YK_CXXFLAGS2 += -restrict -ansi-alias -fno-alias \ -fimf-use-svml=true -fimf-precision=low -fast-transcendentals \ @@ -399,7 +382,26 @@ else ifeq ($(cxx_is_intel),1) YK_CXX_VER_CMD := $(YK_CXX) -V OMPFLAG := -qopenmp -# Gnu-compatible compiler (g++, not Intel or LLVM). +# Clang compiler (clang++, not Intel version). +else ifeq ($(cxx_is_clang),1) + YK_CXXFLAGS2 += $(GXX_ISA) + YK_CXXWARN2 += -Wno-unknown-pragmas -Wno-unused-variable -Wno-unused-but-set-variable \ + -Wno-unused-const-variable -fno-color-diagnostics + VEC_MACROS += NO_SVML NO_PRAGMA_VEC2 + +# Nvidia HPC compiler (nvc++ or mpic++) +else ifeq ($(cxx_is_nv),1) + YK_CXXFLAGS2 += $(GXX_ISA) + YK_CXXWARN2 += -Wno-unused-variable + SWIG_CXXFLAGS += $(SWIG_GCCFLAGS) + VEC_MACROS += NO_SVML + ifeq ($(offload),1) + OMPFLAG := -mp=gpu + else + OMPFLAG := -mp=multicore + endif + +# Gnu-compatible compiler (g++, but not any of above) else ifeq ($(cxx_is_gnu),1) YK_CXXFLAGS2 += $(GXX_ISA) YK_CXXWARN2 += -Wno-unknown-pragmas -Wno-unused-variable -Wno-unused-but-set-variable @@ -425,7 +427,9 @@ ifeq ($(offload),1) ifeq ($(offload_arch),x86_64) MACROS += USE_OFFLOAD_X86 endif - OMPFLAGS += -fopenmp-targets=$(offload_arch) + ifeq ($(cxx_is_llvm_intel),1) + OMPFLAGS += -fopenmp-targets=$(offload_arch) + endif else MACROS += $(VEC_MACROS) endif @@ -469,76 +473,86 @@ NVDIMS := `awk '/define.*NUM_STENCIL_AND_VAR_DIMS/ {print $$NF}' $(YK_CODE_FILE # wavefronts. The time loop may be found in # StencilEquations::run_solution(). The mega_blocks are executed sequentially, # so no OpenMP here. -RANK_LOOP_MODS ?= nested -RANK_LOOP_FLAGS ?= -prefix rank_ -RANK_LOOP_ORDER ?= DOMAIN_LOOP_DIMS -RANK_LOOP_CODE ?= $(RANK_LOOP_MODS) loop($(RANK_LOOP_ORDER)) { } +RANK_LOOP_MODS := nested +RANK_LOOP_FLAGS := -prefix rank_ +RANK_LOOP_ORDER := DOMAIN_LOOP_DIMS +RANK_LOOP_CODE := $(RANK_LOOP_MODS) loop($(RANK_LOOP_ORDER)) { } # Mega_Block loops break up a mega-block using OpenMP threading into blocks. The # 'omp' modifier creates an outer OpenMP loop so that each block is assigned # to a top-level OpenMP thread. -MEGA_BLOCK_LOOP_MODS ?= -MEGA_BLOCK_LOOP_OMP ?= omp parallel for schedule(dynamic,1) proc_bind(spread) -MEGA_BLOCK_LOOP_FLAGS ?= -prefix mega_block_ -omp '$(MEGA_BLOCK_LOOP_OMP)' -MEGA_BLOCK_LOOP_ORDER ?= DOMAIN_LOOP_DIMS -MEGA_BLOCK_LOOP_CODE ?= $(MEGA_BLOCK_LOOP_MODS) omp loop($(MEGA_BLOCK_LOOP_ORDER)) { } +MEGA_BLOCK_LOOP_MODS := +MEGA_BLOCK_LOOP_OMP := omp parallel for schedule(dynamic,1) proc_bind(spread) +MEGA_BLOCK_LOOP_FLAGS := -prefix mega_block_ -omp '$(MEGA_BLOCK_LOOP_OMP)' +MEGA_BLOCK_LOOP_ORDER := DOMAIN_LOOP_DIMS +MEGA_BLOCK_LOOP_CODE := $(MEGA_BLOCK_LOOP_MODS) omp loop($(MEGA_BLOCK_LOOP_ORDER)) { } # Block loops break up a block into micro-blocks. # These are executed sequentially, so no OpenMP. # Like with rank loops, in order for temporal wavefronts to operate properly, # the scanning paths must have strictly incrementing indices. -BLOCK_LOOP_MODS ?= nested -BLOCK_LOOP_FLAGS ?= -prefix block_ -BLOCK_LOOP_ORDER ?= DOMAIN_LOOP_DIMS -BLOCK_LOOP_CODE ?= $(BLOCK_LOOP_MODS) loop($(BLOCK_LOOP_ORDER)) { } +BLOCK_LOOP_MODS := nested +BLOCK_LOOP_FLAGS := -prefix block_ +BLOCK_LOOP_ORDER := DOMAIN_LOOP_DIMS +BLOCK_LOOP_CODE := $(BLOCK_LOOP_MODS) loop($(BLOCK_LOOP_ORDER)) { } # Mini-Block loops break up a micro-block into nano-blocks. The 'omp' modifier # creates a nested OpenMP loop so that each nano-block is assigned to a # nested OpenMP thread. The OpenMP construct is not used when running with # '-bind_inner_threads' because another parallel section is created. -MICRO_BLOCK_LOOP_MODS ?= -MICRO_BLOCK_LOOP_OMP ?= omp parallel for schedule(static,1) proc_bind(spread) -MICRO_BLOCK_LOOP_FLAGS ?= -prefix micro_block_ -omp '$(MICRO_BLOCK_LOOP_OMP)' -MICRO_BLOCK_LOOP_ORDER ?= DOMAIN_LOOP_DIMS -MICRO_BLOCK_LOOP_CODE ?= $(MICRO_BLOCK_LOOP_MODS) omp loop($(MICRO_BLOCK_LOOP_ORDER)) { } - -# Nano-block loops break up a nano-block into pico-blocks. These -# loops are run by a single OMP thread. When offloading, this loop is run in -# parallel on the offload device. The indexes in this loop -# are 'normalized', i.e., vector units and rank-relative. -# When offloading, a nano-block is executed on the device. -NANO_BLOCK_LOOP_MODS ?= serpentine -NANO_BLOCK_LOOP_FLAGS ?= -no-align -prefix nano_block_ -NANO_BLOCK_LOOP_ORDER ?= DOMAIN_LOOP_DIMS +MICRO_BLOCK_LOOP_MODS := +MICRO_BLOCK_LOOP_OMP := omp parallel for schedule(static,1) proc_bind(spread) +MICRO_BLOCK_LOOP_FLAGS := -prefix micro_block_ -omp '$(MICRO_BLOCK_LOOP_OMP)' +MICRO_BLOCK_LOOP_ORDER := DOMAIN_LOOP_DIMS +MICRO_BLOCK_LOOP_CODE := $(MICRO_BLOCK_LOOP_MODS) omp loop($(MICRO_BLOCK_LOOP_ORDER)) { } + +# Nano-block loops break up a nano-block into pico-blocks. This loop is run +# by a single OMP thread on the CPU. When offloading, this loop is executed +# on the device using OMP offload (for Intel devices, "parallel for" is +# deferred to the pico loops). The indexes in this loop are 'normalized', +# i.e., vector units and rank-relative. When offloading, a nano-block is +# executed on the device. +NANO_BLOCK_LOOP_MODS := serpentine +NANO_BLOCK_LOOP_FLAGS := -no-align -prefix nano_block_ +NANO_BLOCK_LOOP_ORDER := DOMAIN_LOOP_DIMS ifeq ($(offload),1) -NANO_BLOCK_LOOP_OMP ?= omp target teams distribute thread_limit(thread_limit) device(KernelEnv::_omp_devn) -NANO_BLOCK_LOOP_FLAGS += -omp '$(NANO_BLOCK_LOOP_OMP)' -NANO_BLOCK_LOOP_MODS += omp -NANO_BLOCK_LOOP_CODE := $(NANO_BLOCK_LOOP_MODS) loop($(NANO_BLOCK_LOOP_ORDER)) { } -else -NANO_BLOCK_LOOP_CODE := $(NANO_BLOCK_LOOP_MODS) loop($(NANO_BLOCK_LOOP_ORDER)) { } + ifeq ($(cxx_is_llvm_intel),1) + NANO_BLOCK_LOOP_MODS := omp serpentine + NANO_BLOCK_LOOP_OMP := omp target teams distribute thread_limit(thread_limit) device(KernelEnv::_omp_devn) + else + NANO_BLOCK_LOOP_MODS := omp nested + NANO_BLOCK_LOOP_OMP := omp target teams distribute parallel for thread_limit(thread_limit) device(KernelEnv::_omp_devn) + endif + NANO_BLOCK_LOOP_FLAGS += -omp '$(NANO_BLOCK_LOOP_OMP)' endif +NANO_BLOCK_LOOP_CODE := $(NANO_BLOCK_LOOP_MODS) loop($(NANO_BLOCK_LOOP_ORDER)) { } -# Pico-Block loops break up a pico-block into vectors. -# When offloading, each pico-block is executed by a team of threads on the device. -# Pico-blocks must contain a separate inner loop over PICO_BLOCK_INNER_LOOP_DIM. -PICO_BLOCK_LOOP_FLAGS ?= -no-align -prefix pico_block_ -PICO_BLOCK_LOOP_ORDER ?= PICO_BLOCK_OUTER_LOOP_DIMS +# Pico-Block loops break up a pico-block into vectors. When offloading, +# each pico-block is executed by a team on Intel devices or using full +# target parallel execution otherwise. Pico-blocks must contain a separate +# inner loop over PICO_BLOCK_INNER_LOOP_DIM. +PICO_BLOCK_LOOP_FLAGS := -no-align -prefix pico_block_ +PICO_BLOCK_LOOP_ORDER := PICO_BLOCK_OUTER_LOOP_DIMS +PICO_BLOCK_LOOP_MODS := nested ifeq ($(offload),1) -PICO_BLOCK_LOOP_MODS ?= omp nested -PICO_BLOCK_LOOP_OMP ?= omp parallel for -PICO_BLOCK_LOOP_FLAGS += -omp '$(PICO_BLOCK_LOOP_OMP)' -else -PICO_BLOCK_LOOP_MODS ?= nested + ifeq ($(cxx_is_llvm_intel),1) + PICO_BLOCK_LOOP_MODS := omp nested + PICO_BLOCK_LOOP_OMP := omp parallel for + PICO_BLOCK_LOOP_FLAGS += -omp '$(PICO_BLOCK_LOOP_OMP)' + endif endif -PICO_BLOCK_LOOP_CODE ?= $(PICO_BLOCK_LOOP_MODS) loop($(PICO_BLOCK_LOOP_ORDER)) { \ +PICO_BLOCK_LOOP_CODE := $(PICO_BLOCK_LOOP_MODS) loop($(PICO_BLOCK_LOOP_ORDER)) { \ loop(PICO_BLOCK_INNER_LOOP_DIM) { } } # General-purpose parallel loop. -MISC_LOOP_OMP ?= omp parallel for schedule(guided) proc_bind(spread) -MISC_LOOP_FLAGS ?= -prefix misc_ -omp '$(MISC_LOOP_OMP)' -MISC_LOOP_ORDER ?= DOMAIN_LOOP_DIMS -MISC_LOOP_CODE ?= $(MISC_LOOP_MODS) omp loop($(MISC_LOOP_ORDER)) { } +ifeq ($(cxx_is_llvm_intel),1) + MISC_LOOP_OMP := omp parallel for schedule(guided) proc_bind(spread) +else + MISC_LOOP_OMP := omp parallel for +endif +MISC_LOOP_FLAGS := -prefix misc_ -omp '$(MISC_LOOP_OMP)' +MISC_LOOP_ORDER := DOMAIN_LOOP_DIMS +MISC_LOOP_CODE := $(MISC_LOOP_MODS) omp loop($(MISC_LOOP_ORDER)) { } # Source dirs. VPATH := $(patsubst $space,$colon,$(COMM_DIR) $(COEFF_DIR) $(YK_LIB_SRC_DIR)) diff --git a/src/kernel/lib/settings.cpp b/src/kernel/lib/settings.cpp index f81c6f1e..e65dc872 100644 --- a/src/kernel/lib/settings.cpp +++ b/src/kernel/lib/settings.cpp @@ -851,6 +851,7 @@ namespace yask { // than one inner thread. Otherwise, find_num_subsets() would set // default to entire block, and we wouldn't effectively use multiple // threads. + bool nb_adj = false; if (num_inner_threads > 1 && _nano_block_sizes.sum() == 0) { // Default dim is outer one. @@ -876,6 +877,7 @@ namespace yask { // Stop when first dim picked. break; } + bool nb_adj = true; } // Divide on best dim. @@ -887,7 +889,7 @@ namespace yask { if (nddims >= 2) _nano_block_sizes[_bind_posn] = vbpts; - // Divide block equally. + // If only 1D, just divide block equally. else _nano_block_sizes[_bind_posn] = ROUND_UP(bsz / num_inner_threads, vbpts); } @@ -900,6 +902,9 @@ namespace yask { _micro_block_sizes, "micro-block", vpts, "vector", step_dim); + if (nb_adj) + os << " (Default nano block sizes were selected to leverage " << + num_inner_threads << " inner OpenMP threads.)\n"; os << " num-nano-blocks-per-micro-block-per-step: " << nsb << endl; os << " num-nano-blocks-per-block-per-step: " << (nsb * nmb) << endl; os << " num-nano-blocks-per-mega-block-per-step: " << (nsb * nmb * nb) << endl;