An error occurred while fetching folder content.
Add templates to var and vari (#1915)
Steve Bronder authored
Adds vari_value and var_value with templates support static matrices. vari and var are written as aliases vari_value<double> and var_value<double>. Updates std::numeric_limits so that it conforms to the C++11 definition

* Add a template to grad so that init_dependent can be non-virtual, make vari_base a pure virtual base class

* add final to classes inheriting op_varis so flto can more aggressivly devirtualize

* cleanup templates in var and vari, clang-format, tests for is_var, is_vari, and avoiding copies for integral type vari_value

* add ref to require_convertible check in vari constructors

* [Jenkins] auto-formatting by clang-format version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)

* fix header check

* Fix templates for hmm

* [Jenkins] auto-formatting by clang-format version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)

* add template to lp value in in positive_constrain

* replace vector func value types in apply_scalar_binary with return type of function

* [Jenkins] auto-formatting by clang-format version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)

* var and vari can only be templated with floating point types. Remove double_promoter and use promote_args instead. Add flto compiler flags for gcc and clang

* [Jenkins] auto-formatting by clang-format version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)

* add flto flag for mac

* use ? instead of : for flto flags

* update vari test since integral template types are no longer allowed

* remove whole program vtable clang optimization

* remove -fstrict-vtable-pointers from clang

* fix is_var test

* remove unneeded templating in var_value operators

* [Jenkins] auto-formatting by clang-format version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)

* remove flto flag

* use lambda instead of visitor pattern

* fix vari_test

* only use fdevirtualize-at-ltrans for linux gcc

* use filter instead of findstring when matching on g++ in makefile

* do not use flto for windows

* fix compile_flags missing tab

* add flto flags to library flags

* remove flto changes

* add back flto flag for mac and linux

* add flto to cppflags

* set ar by clang or gcc cxx_type

* remove vari_base

* use functors instead of lambdas

* remove flto from compiler_flags

* [Jenkins] auto-formatting by clang-format version 6.0.0-1ubuntu2~16.04.1 (tags/RELEASE_600/final)

* remove promote_args_t in var member function templates

* remove TODO comment and fix grammar

* [Jenkins] auto-formatting by clang-format version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)

* make visitor classes more generic

* [Jenkins] auto-formatting by clang-format version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)

* add const correct stuff for vari value accessors in var

* remove constructors for mixed floating point types

* remove nohup

* switch order of members in vari_printer for order warning on windows

* switch order of members in vari_printer for order warning on windows

* call set_zero_adjoint_nested directly

* call set_zero_adjoint_nested directly

* [Jenkins] auto-formatting by clang-format version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)

* try variant2

* add noexcept to member functions that will not throw

* use lambda for print_stack

* [Jenkins] auto-formatting by clang-format version 6.0.0-1ubuntu2~16.04.1 (tags/RELEASE_600/final)

* use eigen strong inline and static on set_zero_adj()

* [Jenkins] auto-formatting by clang-format version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)

* testing if vari long slows us down

* add back tests for vari long double

* [Jenkins] auto-formatting by clang-format version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)

* remove templates from operators

* [Jenkins] auto-formatting by clang-format version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)

* switching back to virtual

* Trying multi stack method

* add var_dbl_stack to vari

* add var_dbl_stack to vari

* add var_dbl_stack to vari

* remove nochain stack and use dbl stack

* add tuple of stacks to zero out

* debugs for nested sizes

* multi-stack nested

* add size check on start_nested

* [Jenkins] auto-formatting by clang-format version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)

* add docs to for_each

* [Jenkins] auto-formatting by clang-format version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)

* update docs

* Use trick from boost::hana on for_each to avoid unused-value warning

* [Jenkins] auto-formatting by clang-format version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)

* cpplint

* [Jenkins] auto-formatting by clang-format version 6.0.0-1ubuntu2~16.04.1 (tags/RELEASE_600/final)

* update tests to use new zeroing vari stack instead of nochain

* update docs for var and vari

* [Jenkins] auto-formatting by clang-format version 6.0.0-1ubuntu2~16.04.1 (tags/RELEASE_600/final)

* forgot () in virtual vari_base destructor

* [Jenkins] auto-formatting by clang-format version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)

* fix libstdc++ bug with array

* cpplint

* [Jenkins] auto-formatting by clang-format version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)

* fix seg fault by not always giving var_zeroing stacks to nested_var_zero stack sizes

* [Jenkins] auto-formatting by clang-format version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)

* only push sizes if they are nonzero for the nested zeroing stack

* [Jenkins] auto-formatting by clang-format version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)

* move around the stacks to avoid double push_backs in vari

* [Jenkins] auto-formatting by clang-format version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)

* Fix bad stack sizes

* use make_unique in ad_tape_observer

* [Jenkins] auto-formatting by clang-format version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)

* update to fix mem bug in mpi tests

* [Jenkins] auto-formatting by clang-format version 6.0.0-1ubuntu2~16.04.1 (tags/RELEASE_600/final)

* move back to virtual methods

* [Jenkins] auto-formatting by clang-format version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)

* remove references to zero_stack from tests

* [Jenkins] auto-formatting by clang-format version 6.0.0-1ubuntu2~16.04.1 (tags/RELEASE_600/final)

* small fixes

* [Jenkins] auto-formatting by clang-format version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)

* use nested chainable stack class for set zero adjoint

* [Jenkins] auto-formatting by clang-format version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)

* adds uint16_t to var test

* remove changes to cholesky and vari_pointer type trait in var
Co-authored-by: default avatarStan Jenkins <mc.stanislaw@gmail.com>
Co-authored-by: default avatarJenkins <nobody@nowhere>
5b30e403
Name Last commit Last update