diff --git a/ATL.hpp b/ATL.hpp
index 345b102..f8bb1aa 100644
--- a/ATL.hpp
+++ b/ATL.hpp
@@ -14,6 +14,10 @@
#ifndef ATL_HPP
#define ATL_HPP
+//SEMANTIC VERSIONING
+#define ATL_VERSION_MAJOR 1
+#define ATL_VERSION_MINOR 01
+#define ATL_VERSION_PATCH 0
//#include "lib/MinMax.hpp"
diff --git a/docs/draft_developers_guide.pdf b/docs/draft_developers_guide.pdf
new file mode 100644
index 0000000..21c2f60
Binary files /dev/null and b/docs/draft_developers_guide.pdf differ
diff --git a/docs/index.html b/docs/index.html
index d7b83c4..7cef8d0 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -14,12 +14,8 @@
Analytics Template Library
-
-
-
-
-
@@ -69,32 +64,38 @@
+
+ href="./draft_developers_guide.pdf" download>
-
-
- Version 1.0
-
+
+
+ v1.0.0
+
+
+
+
+
- Type: model builder
+ Type: Model Builder
- author: Matthew Supernaw
+ Author: Matthew Supernaw
The Analytics Template Library (ATL) is a scientific computing library with an emphasis on gradient based optimization. ATL leverages the power of template metaprogramming for flexibility, extensibility, and speed. This guide is intended to give the user a basic understanding of how to develop programs in ATL. The information in this document is intended for anyone interested in scientific computing in C++ and it is expected that the reader will have a basic understanding of the C++ programming language, as well as scientific computing.
+
@@ -102,7 +103,7 @@
- Andreas Griewank, Andrea Walther [Introduction to Automatic Differentiation]. PAMM u ̊ Proc. Appl. Math. Mech. 2, 45?49 (2003).
+ Andreas Griewank, Andrea Walther [Introduction to Automatic Differentiation]. PAMM Proc. Appl. Math. Mech. 2, 45?49 (2003).
Andreas Griewank [On Automatic Differentiation]. Center for Research on Parallel Computation, 1989.
@@ -115,14 +116,35 @@
+
-
+
+
+
+ Code Repository Badges
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+ Icons by icons8 https://icons8.com/
diff --git a/docs/static/badge_internal_active.png b/docs/static/badge_internal_active.png
new file mode 100644
index 0000000..2082893
Binary files /dev/null and b/docs/static/badge_internal_active.png differ
diff --git a/docs/static/icons8-checkmark-24-internal-active.png b/docs/static/icons8-checkmark-24-internal-active.png
new file mode 100644
index 0000000..0c9c84d
Binary files /dev/null and b/docs/static/icons8-checkmark-24-internal-active.png differ
diff --git a/docs/static/icons8-email-send-24.png b/docs/static/icons8-email-send-24.png
new file mode 100644
index 0000000..525b801
Binary files /dev/null and b/docs/static/icons8-email-send-24.png differ
diff --git a/docs/static/noaa-fisheries-rgb-2line-horizontal-small.png b/docs/static/noaa-fisheries-rgb-2line-horizontal-small.png
new file mode 100644
index 0000000..6f219dd
Binary files /dev/null and b/docs/static/noaa-fisheries-rgb-2line-horizontal-small.png differ
diff --git a/docs/static/simple.css b/docs/static/simple.css
index 77d63b3..959dc0f 100644
--- a/docs/static/simple.css
+++ b/docs/static/simple.css
@@ -1,10 +1,19 @@
.container{
- display: flex;
- flex-direction:column;
- height: 100%;
- color:#3F51B5;
- margin:60px;
+ display: flex;
+ flex-direction:column;
+ height: 100%;
+ color:#0055A4;
+ margin:60px 100px;
+ font-family: Arial Narrow,Arial,sans-serif;
+
+}
+
+.mywrap_end{
+ display: flex;
+ flex-direction:row;
+ align-content: center;
+ justify-content: flex-end;
}
.mywrap{
@@ -14,13 +23,19 @@
justify-content: stretch;
}
+.mywrap_center{
+ display: flex;
+ flex-direction:row;
+ margin:auto;
+ padding-left: 15px;
+}
.title {
min-width: 200px;
margin-right:auto;
height: 95px;
- color: #3F51B5;
- font-family: 'Source Sans Pro';
+ color: #0055A4;
+ font-family: Cambria,Georgia,serif;
font-size: 36px;
text-align: left;
padding: 5px;
@@ -36,13 +51,30 @@ a{
}
.badge{
- width: 95px;
- background-image: url("./badge.png");
+ width: 60px;
+ max-height: 60px;
border: none;
background-repeat: no-repeat;
background-size: cover;
}
+#badge_internal_active{
+background-image: url("./badge_internal_active.png")
+}
+
+#badge_internal_inactive{
+background-image: url("./badge_internal_inactive.png")
+}
+
+#badge_external_active{
+background-image: url("./badge_external_active.png")
+}
+
+#badge_external_active{
+background-image: url("./badge_external_active.png")
+}
+
+
#check{
background-image: url("./check.png");
@@ -60,19 +92,33 @@ background-image: url("./greycheck.png");
background-image: url("./greybadge.png");
}
+#internal_inactive{
+ background-image: url("icons8-checkmark-24-internal-inactive.png");
+ background-repeat: none;
+ background-size: cover;
+}
+#internal_active{
+ background-image: url("icons8-checkmark-24-internal-active.png");
+ background-repeat: none;
+ background-size: cover;
+}
+#external_active{
+ background-image: url("icons8-checkmark-24-external-active.png");
+ background-repeat: none;
+ background-size: cover;
+}
.codelink{
width: 120px;
height: 45px;
color: #000000;
-font-family: 'Source Sans Pro';
-font-size: 16px;
+font-size: 14px;
font-weight: normal;
font-style: normal;
text-decoration: none;
text-align: center;
background: #FFFFFF;
-border: 3px dotted #3F51B5;
+border: 3px dotted #0055A4;
border-radius: 21px;
margin-right: 10px;
@@ -81,7 +127,7 @@ margin-right: 10px;
width: 100%;
height: 8px;
-background-color:#3F51B5;
+background-color:#0055A4;
border: 0 none;
margin-top: 20px;
margin-bottom:20px;
@@ -92,7 +138,7 @@ margin-bottom:20px;
width: auto;
height: 30px;
-color: #3F51B5;
+color: #0055A4;
font-weight: bold;
font-style: normal;
text-decoration: none;
@@ -105,7 +151,7 @@ font-size: large;
.pdfIcon{
width:35px;
height: 35px;
-color: #3F51B5;
+color: #0055A4;
font-size: 24px;
font-weight: normal;
background-image: url("./icons8-pdf-50.png");
@@ -135,15 +181,14 @@ border-radius: 4px;
width: 97px;
height: 45px;
color: #FFFFFF;
-font-size: 14px;
+font-size: 24px;
font-weight: bold;
font-style: normal;
text-decoration: none;
text-align: center;
-background: rgba(63,81,181,0.5);
+background: #0093D0;
border: none;
border-radius: 21px;
-box-shadow: 0 5px 5px -5px #333;
margin-left: auto;
}
@@ -162,26 +207,28 @@ text-align: left;
.main{
font-size:16px;
+ padding: 0px 40px 0px 40px;
}
.mainText {
width: auto;
-min-height: 250px;
+min-height: 150px;
color: #000000;
-font-family: sans-serif;
+font-family: Arial Narrow,Arial,sans-serif;
font-size: 16px;
text-align: left;
-padding-top: 15px;
+padding: 15px 30px 15px 0;
line-height: 22px;
+text-align: justify;
}
.ref {
width: 441px;
height: 40px;
-color: #3F51B5;
+color: #0055A4;
font-size: large;
font-weight: normal;
@@ -197,32 +244,29 @@ text-align: left;
width: 30px;
height: 30px;
color: #FFFFFF;
- font-family: 'Source Sans Pro';
font-size: 25px;
font-weight: bold;
- font-family: sans-serif;
+ font-family: Arial Narrow,Arial,sans-serif;
text-decoration: none;
- background: rgba(63,81,181,0.4);
+ background: rgba(1,1,1,0.5);
border: 1px solid #FFFFFF;
border-radius: 10px;
- box-shadow: 0 5px 5px -5px #333;
text-align: center;
margin-left: auto;
}
-.bottom{
- display: flex;
- flex-direction:row;
- justify-content: flex-end;
- margin-bottom: 25px;
-}
+
ul {
- list-style-type: none;
+ list-style-type: square;
display: flex;
flex-direction: column;
}
+#assocaited_tools{
+list-style-type: none;
+}
+
li{
line-height:24px;
font-size: 16px;
@@ -245,9 +289,54 @@ li{
color: white;
border-radius: 2px;
font-size: 12px;
- font-family: sans-serif;
+ font-family: Arial Narrow,Arial,sans-serif;
font-weight: 400;
}
[data-md-tooltip]:hover:before {
transform: translateX(-50%) scale(1);
}
+
+
+#line{
+ border-right:1px solid black;
+}
+
+.mylink{padding: 5px;
+font-size: 14px;}
+
+.mylink:any-link {
+ color:black;
+ height: fit-content;
+}
+
+
+/* WebKit browsers */
+.mylink:-webkit-any-link {
+ color:black;
+ height: fit-content;
+}
+
+#email{
+ background-image: url("icons8-email-send-24.png");
+ background-repeat: none;
+ background-size: cover;
+ border:none;
+
+}
+
+footer{
+ display: flex;
+ flex-direction: row;
+ font-size: 12px;
+ color:black;
+ padding-left:60px;
+ padding-right:260px;
+ font-family: Cambria,Georgia,serif;
+
+}
+.attribution{
+ display: flex;
+ justify-content: flex-end;
+ font-size: 10px;
+ color:grey;
+}
diff --git a/lib/DynamicExpression.hpp b/lib/DynamicExpression.hpp
index 5d8d550..b325b0c 100644
--- a/lib/DynamicExpression.hpp
+++ b/lib/DynamicExpression.hpp
@@ -3201,8 +3201,8 @@ namespace atl {
}
virtual void DifferentiatedBy(const std::vector& id) {
- assert(order<=id.size());
- this->diff_id = id[order-1];
+ assert(order <= id.size());
+ this->diff_id = id[order - 1];
}
virtual void SwapDependents(const typename std::unordered_map > >& vmap) {
@@ -3230,6 +3230,11 @@ namespace atl {
}
};
+ template
+ struct DynamicExpressionPostIterator {
+ };
+
+
}
diff --git a/lib/Variable.hpp b/lib/Variable.hpp
index 3278873..17c7ae9 100644
--- a/lib/Variable.hpp
+++ b/lib/Variable.hpp
@@ -32,9 +32,7 @@
namespace atl {
-
-
- /**
+ /**
* Base class for parameter transformations. Used in optimization
* problems involving bounded parameters.
* @param val
@@ -139,13 +137,13 @@ namespace atl {
public:
virtual REAL_T External2Internal(REAL_T val, REAL_T min_, REAL_T max_)const {
- if(val == min_){
- val+=std::numeric_limits::epsilon();
- }else if(val == max_){
- val-=std::numeric_limits::epsilon();
+ if (val == min_) {
+ val += static_cast(1e-8);
+ } else if (val == max_) {
+ val -= static_cast(1e-8);
}
-
- REAL_T p = ((val)- min_) / (max_ - min_);
+
+ REAL_T p = ((val) - min_) / (max_ - min_);
return std::log(p / (1.0 - p));
}
@@ -155,15 +153,15 @@ namespace atl {
}
virtual REAL_T DerivativeInternal2External(REAL_T val, REAL_T min_, REAL_T max_)const {
-// return ((max_-min_)*std::exp(val))/(std::exp(val)+1.0)-((max_-min_)*std::exp((2.0*val)))/std::pow((std::exp(val)+1.0),2.0);
-// return ((max_−min_)*std::exp(val)/(std::exp(val)+1.0)−((max_−min_)*std::exp((2.0*val))/std::pow(std::exp(val)+1.0),2.0);
+ // return ((max_-min_)*std::exp(val))/(std::exp(val)+1.0)-((max_-min_)*std::exp((2.0*val)))/std::pow((std::exp(val)+1.0),2.0);
+ // return ((max_−min_)*std::exp(val)/(std::exp(val)+1.0)−((max_−min_)*std::exp((2.0*val))/std::pow(std::exp(val)+1.0),2.0);
return (std::exp(val) * std::log(M_E)*(max_ - min_)) / (std::exp(val) + 1.0)-
(std::exp(static_cast (2.0 * val)) * std::log(M_E)*(max_ - min_)) / std::pow((std::exp(val) + 1), 2.0);
}
};
-
-
+
+
template
struct Variable;
@@ -177,8 +175,222 @@ namespace atl {
template<>
ExpressionType ExpressionTrait >::et_type = atl::VARIABLE_SCALAR;
+ template
+ struct AssignmentTrait {
+
+ template
+ static Variable& Assign(Variable& var, atl::Tape& tape, const ExpressionBase& exp, size_t index) {
+ return var;
+ }
+ };
+
+ template
+ struct AssignmentTrait {
+
+ template
+ static Variable& Assign(Variable& var, atl::Tape& tape, const ExpressionBase& exp, size_t index) {
+ var.SetValue(exp.GetValue());
+ return var;
+ }
+ };
+
+ template
+ struct AssignmentFunctor {
+ typedef AssignmentTrait assign;
+ assign functor;
+
+ template
+ Variable& Assign(Variable& var, atl::Tape& tape, const ExpressionBase& exp, size_t index) {
+ // std::cout << "FIRST_ORDER_REVERSE" << std::endl;
+ atl::StackEntry& entry = tape.stack[index];
+ exp.PushIds(entry.ids);
+
+ entry.w = var.info;
+ entry.w->count++;
+ entry.w->is_nl = exp.IsNonlinear();
+ entry.first.resize(entry.ids.size(), static_cast (0.0));
+ typename atl::StackEntry::vi_iterator it;
+ size_t i = 0;
+ entry.wv = exp.GetValue();
+
+
+ for (it = entry.ids.begin(); it != entry.ids.end(); ++it) {
+ entry.min_id = std::min((*it)->id, entry.min_id);
+ entry.max_id = std::max((*it)->id, entry.max_id);
+ entry.first[i] = exp.EvaluateFirstDerivative((*it)->id);
+ i++;
+ }
+ var.SetValue(exp.GetValue());
+
+ return var;
+ return var;
+ }
+
+ };
+
+ template
+ struct AssignmentTrait {
+
+ template
+ static Variable& Assign(Variable& var, atl::Tape& tape, const ExpressionBase& exp, size_t index) {
+ // std::cout << "FIRST_ORDER_REVERSE" << std::endl;
+ atl::StackEntry& entry = tape.stack[index];
+ exp.PushIds(entry.ids);
+
+ entry.w = var.info;
+ entry.w->count++;
+ entry.w->is_nl = exp.IsNonlinear();
+ entry.first.resize(entry.ids.size(), static_cast (0.0));
+ typename atl::StackEntry::vi_iterator it;
+ size_t i = 0;
+ entry.wv = exp.GetValue();
+
+
+ for (it = entry.ids.begin(); it != entry.ids.end(); ++it) {
+ entry.min_id = std::min((*it)->id, entry.min_id);
+ entry.max_id = std::max((*it)->id, entry.max_id);
+ entry.first[i] = exp.EvaluateFirstDerivative((*it)->id);
+ i++;
+ }
+ var.SetValue(exp.GetValue());
+
+ return var;
+ }
+ };
+
+ template
+ struct FirstOrderAssignemnt : AssignmentFunctor {
+ typedef AssignmentTrait assign;
+ assign functor;
+
+ template
+ Variable& Assign(Variable& var, atl::Tape& tape, const ExpressionBase& exp, size_t index) {
+ return assign::Assign(var, tape, exp, index);
+ }
+ };
+
+ template
+ struct AssignmentTrait {
+
+ template
+ static Variable& Assign(Variable& var, atl::Tape& tape, const ExpressionBase& exp, size_t index) {
+
+ std::cout << "SECOND_ORDER_REVERSE" << std::endl;
+ atl::StackEntry& entry = tape.stack[index];
+ exp.PushIds(entry.ids);
+
+ entry.w = var.info;
+ entry.w->count++;
+ entry.first.resize(entry.ids.size(), static_cast (0.0));
+ typename atl::StackEntry::vi_iterator it;
+ typename atl::StackEntry::vi_iterator jt;
+ size_t i = 0;
+ size_t j = 0;
+
+ entry.wv = exp.GetValue();
+ entry.w->is_nl = exp.IsNonlinear();
+ entry.is_nl = exp.IsNonlinear();
+
+ entry.second.resize(entry.ids.size() * entry.ids.size(), static_cast (0.0));
+
+ for (it = entry.ids.begin(); it != entry.ids.end(); ++it) {
+
+ entry.min_id = std::min((*it)->id, entry.min_id);
+ entry.max_id = std::max((*it)->id, entry.max_id);
+ entry.first[i] = exp.EvaluateFirstDerivative((*it)->id);
+ j = 0;
+ for (jt = entry.ids.begin(); jt != entry.ids.end(); ++jt) {
+ entry.second[i * entry.ids.size() + j] = exp.EvaluateSecondDerivative((*it)->id, (*jt)->id);
+ j++;
+ }
+ i++;
+ }
+
+ var.SetValue(exp.GetValue());
+
+ return var;
+ }
+ };
+
+ template
+ struct SecondOrderAssignemnt : AssignmentFunctor {
+ typedef AssignmentTrait assign;
+ assign functor;
+
+ template
+ Variable& Assign(Variable& var, atl::Tape& tape, const ExpressionBase& exp, size_t index) {
+ return assign::Assign(var, tape, exp, index);
+ }
+ };
+
+ template
+ struct AssignmentTrait {
+
+ template
+ static Variable& Assign(Variable& var, atl::Tape& tape, const ExpressionBase& exp, size_t index) {
+
+ std::cout << "THIRD_ORDER_REVERSE" << std::endl;
+ atl::StackEntry& entry = tape.stack[index];
+ exp.PushIds(entry.ids);
+
+ entry.w = var.info;
+ entry.w->count++;
+ entry.w->is_nl = true;
+ entry.first.resize(entry.ids.size(), static_cast (0.0));
+ typename atl::StackEntry::vi_iterator it;
+ typename atl::StackEntry::vi_iterator jt;
+ typename atl::StackEntry::vi_iterator kt;
+ size_t i = 0;
+ size_t j = 0;
+ size_t k = 0;
+ entry.wv = exp.GetValue();
+
+ entry.w->is_nl = exp.IsNonlinear();
+ entry.is_nl = exp.IsNonlinear();
+
+ entry.second.resize(entry.ids.size() * entry.ids.size(), static_cast (0.0));
+ entry.third.resize(entry.ids.size() * entry.ids.size() * entry.ids.size(), static_cast (0.0));
+ for (it = entry.ids.begin(); it != entry.ids.end(); ++it) {
+ (*it)->live++;
+ entry.min_id = std::min((*it)->id, entry.min_id);
+ entry.max_id = std::max((*it)->id, entry.max_id);
+ entry.first[i] = exp.EvaluateFirstDerivative((*it)->id);
+ j = 0;
+ for (jt = entry.ids.begin(); jt != entry.ids.end(); ++jt) {
+ entry.second[i * entry.ids.size() + j] = exp.EvaluateSecondDerivative((*it)->id, (*jt)->id);
+ k = 0;
+ for (kt = entry.ids.begin(); kt != entry.ids.end(); ++kt) {
+
+ entry.third[i * entry.ids.size() * entry.ids.size() + j * entry.ids.size() + k] =
+ exp.EvaluateThirdDerivative((*it)->id, (*jt)->id, (*kt)->id);
+ k++;
+ }
+ j++;
+ }
+ i++;
+ }
+
+ var.SetValue(exp.GetValue());
+
+ return var;
+ }
+ };
+
+ template
+ struct ThirdOrderAssignemnt : AssignmentFunctor {
+ typedef AssignmentTrait assign;
+ assign functor;
+
+ template
+ Variable& Assign(Variable& var, atl::Tape& tape, const ExpressionBase& exp, size_t index) {
+ return assign::Assign(var, tape, exp, index);
+ }
+ };
+
template
struct Variable : atl::ExpressionBase > {
+ static std::vector* > assignment_operators;
+
typedef typename std::shared_ptr > VariableInfoPtr;
static Tape tape;
typedef REAL_T base_type;
@@ -413,6 +625,7 @@ namespace atl {
if (tape.recording) {
+
atl::StackEntry& entry = tape.stack[index];
exp.PushIds(entry.ids);
@@ -427,6 +640,7 @@ namespace atl {
size_t j = 0;
size_t k = 0;
entry.wv = exp.GetValue();
+
switch (tape.derivative_trace_level) {
case FIRST_ORDER_REVERSE:
@@ -437,20 +651,19 @@ namespace atl {
i++;
}
break;
-
- case FIRST_ORDER_REVERSE_COMPLEX_STEP:
- for (it = entry.ids.begin(); it != entry.ids.end(); ++it) {
- entry.min_id = std::min((*it)->id, entry.min_id);
- entry.max_id = std::max((*it)->id, entry.max_id);
- entry.first[i] = exp.ComplexEvaluate((*it)->id).imag()/1e-20;
- i++;
- }
- break;
+
+ // case FIRST_ORDER_REVERSE_COMPLEX_STEP:
+ // // for (it = entry.ids.begin(); it != entry.ids.end(); ++it) {
+ // // entry.min_id = std::min((*it)->id, entry.min_id);
+ // // entry.max_id = std::max((*it)->id, entry.max_id);
+ // // entry.first[i] = exp.ComplexEvaluate((*it)->id).imag()/1e-20;
+ // // i++;
+ // // }
+ // break;
case SECOND_ORDER_REVERSE:
entry.w->is_nl = exp.IsNonlinear();
entry.is_nl = exp.IsNonlinear();
-
entry.second.resize(entry.ids.size() * entry.ids.size(), static_cast (0.0));
for (it = entry.ids.begin(); it != entry.ids.end(); ++it) {
@@ -493,6 +706,7 @@ namespace atl {
i++;
}
break;
+
case atl::UTPM_REVERSE:
for (it = entry.ids.begin(); it != entry.ids.end(); ++it) {
@@ -519,6 +733,22 @@ namespace atl {
}
entry.exp = exp.ToDynamic();
+ break;
+
+ case FIRST_ORDER_FORWARD:
+ for (it = entry.ids.begin(); it != entry.ids.end(); ++it) {
+
+ }
+
+
+ break;
+ case SECOND_ORDER_FORWARD:
+ for (it = entry.ids.begin(); it != entry.ids.end(); ++it) {
+
+ }
+ break;
+ case THIRD_ORDER_FORWARD:
+
break;
default:
std::cout << "Unknown Derivative Trace Level.\n";
@@ -626,16 +856,15 @@ namespace atl {
ParameterTransformation& GetParameterTransformation() {
return this->transformation;
}
-
+
/**
* Returns the variables transformation functor.
* @return
*/
void SetParameterTransformation(ParameterTransformation* trans) {
- this->transformation = trans;
+ this->transformation = trans;
}
-
/**
* Returns the max boundary.
*
@@ -668,15 +897,15 @@ namespace atl {
* Sets the min boundary.
*/
void SetMinBoundary(REAL_T min_boundary) {
- this->bounded_m = true;
+ this->bounded_m = true;
this->min_boundary_m = min_boundary;
}
bool IsBounded() const {
return this->bounded_m;
}
-
- /**
+
+ /**
* Sets the boundary values for this variable.
*
* @param min_boundary
@@ -988,11 +1217,18 @@ namespace atl {
template
Tape Variable::tape(10000);
+ template
+ std::vector* > Variable::assignment_operators = {
+ new FirstOrderAssignemnt(),
+ new SecondOrderAssignemnt(),
+ new ThirdOrderAssignemnt()
+ };
+
template
bool Variable::show = false;
template
- std::shared_ptr > Variable::default_transformation(new atl::LogitParameterTransformation());
+ std::shared_ptr > Variable::default_transformation(new atl::SinParameterTransformation());
template
std::ostream& operator<<(std::ostream& out, const Variable& v) {
diff --git a/nbproject/Makefile-Debug.mk b/nbproject/Makefile-Debug.mk
index e32edf5..33c09a9 100644
--- a/nbproject/Makefile-Debug.mk
+++ b/nbproject/Makefile-Debug.mk
@@ -17,7 +17,7 @@ RANLIB=ranlib
CC=gcc
CCC=g++
CXX=g++
-FC=gfortran
+FC=g77
AS=as
# Macros
diff --git a/nbproject/Makefile-Release.mk b/nbproject/Makefile-Release.mk
index d716bf0..2912269 100644
--- a/nbproject/Makefile-Release.mk
+++ b/nbproject/Makefile-Release.mk
@@ -17,7 +17,7 @@ RANLIB=ranlib
CC=gcc
CCC=clang++
CXX=clang++
-FC=gfortran
+FC=g77
AS=as
# Macros
diff --git a/nbproject/configurations.xml b/nbproject/configurations.xml
index c003fd2..9b36828 100644
--- a/nbproject/configurations.xml
+++ b/nbproject/configurations.xml
@@ -5,92 +5,95 @@
displayName="Header Files"
projectFiles="true">
-
- ATL/support/cs_sparse.hpp
- ATL/support/port.hpp
-
-
- ATL/third_party/HashContainers.hpp
- ATL/third_party/get_numericalsolvers.sh
-
-
-
- ATL/Utilities/IO/Console.hpp
- ATL/Utilities/IO/StreamedDataFile.hpp
+
+
+ lib/support/cs_sparse.hpp
+ lib/support/port.hpp
+
+
+ lib/third_party/HashContainers.hpp
+ lib/third_party/get_numericalsolvers.sh
- ATL/Utilities/BigFloat.hpp
- ATL/Utilities/CLFAllocator.hpp
- ATL/Utilities/Combinations.hpp
- ATL/Utilities/MemoryPool.hpp
- ATL/Utilities/Platform.hpp
- ATL/Utilities/Plots.hpp
- ATL/Utilities/Profile.hpp
- ATL/Utilities/Profiler.hpp
- ATL/Utilities/SIMD.hpp
- ATL/Utilities/StdMath.hpp
- ATL/Utilities/StringUtil.hpp
- ATL/Utilities/compressed_vector.hpp
- ATL/Utilities/flat_map.hpp
- ATL/Utilities/flat_set.hpp
- ATL/Utilities/lazyflatset.hpp
- ATL/Utilities/short_alloc.hpp
- ATL/Utilities/small_set.hpp
+
+
+ lib/Utilities/IO/Console.hpp
+ lib/Utilities/IO/StreamedDataFile.hpp
+
+ lib/Utilities/BigFloat.hpp
+ lib/Utilities/CLFAllocator.hpp
+ lib/Utilities/Combinations.hpp
+ lib/Utilities/MemoryPool.hpp
+ lib/Utilities/Platform.hpp
+ lib/Utilities/Plots.hpp
+ lib/Utilities/Profile.hpp
+ lib/Utilities/Profiler.hpp
+ lib/Utilities/SIMD.hpp
+ lib/Utilities/StdMath.hpp
+ lib/Utilities/StringUtil.hpp
+ lib/Utilities/compressed_vector.hpp
+ lib/Utilities/flat_map.hpp
+ lib/Utilities/flat_set.hpp
+ lib/Utilities/lazyflatset.hpp
+ lib/Utilities/short_alloc.hpp
+ lib/Utilities/small_set.hpp
+
+ lib/ACos.hpp
+ lib/ASin.hpp
+ lib/ATL.hpp
+ lib/ATL_RSD.docx
+ lib/ATan.hpp
+ lib/Add.hpp
+ lib/CLFAllocator.hpp
+ lib/Ceil.hpp
+ lib/Cos.hpp
+ lib/Cosh.hpp
+ lib/DerivativeChecker.hpp
+ lib/Divide.hpp
+ lib/DynamicExpression.hpp
+ lib/Exp.hpp
+ lib/Expression.hpp
+ lib/Fabs.hpp
+ lib/Floor.hpp
+ lib/FunctionMinimizer.hpp
+ lib/Helpers.hpp
+ lib/LICENSE.md
+ lib/Live-variables-Hessian.pdf
+ lib/Log.hpp
+ lib/Log10.hpp
+ lib/Makefile
+ lib/Matrix.hpp
+ lib/MatrixUtilities.hpp
+ lib/MinMax.hpp
+ lib/Multiply.hpp
+ lib/Optimization.hpp
+ lib/Optimization.hpp_backup
+ lib/Optimization.hpp_backup2
+ lib/Platform.hpp
+ lib/Pow.hpp
+ lib/README.md
+ lib/Real.hpp
+ lib/SIMD.hpp
+ lib/Serialize.hpp
+ lib/Sign.h
+ lib/Sin.hpp
+ lib/Sinh.hpp
+ lib/Sqrt.hpp
+ lib/Subtract.hpp
+ lib/Tan.hpp
+ lib/Tanh.hpp
+ lib/Tape.hpp
+ lib/ThreadPool.hpp
+ lib/Traits.hpp
+ lib/Transformations.h
+ lib/Variable.hpp
+ lib/VariableInfo.hpp
+ lib/Vector.hpp
+ lib/ad_cmath.hpp
+ lib/clfmalloc.h
+ lib/higher_order_rm_ad.pdf
+ lib/notes.txt
- ATL/ACos.hpp
- ATL/ASin.hpp
- ATL/ATL.hpp
- ATL/ATL_RSD.docx
- ATL/ATan.hpp
- ATL/Add.hpp
- ATL/CLFAllocator.hpp
- ATL/Ceil.hpp
- ATL/Cos.hpp
- ATL/Cosh.hpp
- ATL/DerivativeChecker.hpp
- ATL/Divide.hpp
- ATL/DynamicExpression.hpp
- ATL/Exp.hpp
- ATL/Expression.hpp
- ATL/Fabs.hpp
- ATL/Floor.hpp
- ATL/FunctionMinimizer.hpp
- ATL/Helpers.hpp
- ATL/LICENSE.md
- ATL/Live-variables-Hessian.pdf
- ATL/Log.hpp
- ATL/Log10.hpp
- ATL/Makefile
- ATL/Matrix.hpp
- ATL/MatrixUtilities.hpp
- ATL/MinMax.hpp
- ATL/Multiply.hpp
- ATL/Optimization.hpp
- ATL/Optimization.hpp_backup
- ATL/Optimization.hpp_backup2
- ATL/Platform.hpp
- ATL/Pow.hpp
- ATL/README.md
- ATL/Real.hpp
- ATL/SIMD.hpp
- ATL/Serialize.hpp
- ATL/Sign.h
- ATL/Sin.hpp
- ATL/Sinh.hpp
- ATL/Sqrt.hpp
- ATL/Subtract.hpp
- ATL/Tan.hpp
- ATL/Tanh.hpp
- ATL/Tape.hpp
- ATL/ThreadPool.hpp
- ATL/Traits.hpp
- ATL/Transformations.h
- ATL/Variable.hpp
- ATL/VariableInfo.hpp
- ATL/Vector.hpp
- ATL/ad_cmath.hpp
- ATL/clfmalloc.h
- ATL/higher_order_rm_ad.pdf
- ATL/notes.txt
+ ATL.hpp
/Users/matthewsupernaw/NetBeansProjects/ATL_v2
ATL
+ lib
Makefile
@@ -141,167 +145,169 @@
- -
+
-
+
+ -
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
@@ -340,167 +346,169 @@
-
-
+
-
+
+ -
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+