advantage 0.1.0

Automatic Differentiation Toolkit
Documentation
#include <gtest/gtest.h>
#include <adv.hpp>

TEST(Double, arithmetic_ops)
{
	adv::Context ctx;
	auto a = ctx.new_independent();
	auto b = ctx.new_independent();

	a + b;
	a - b;
	a * b;
	a / b;

	a + 1.0;
	a - 1.0;
	a * 1.0;
	a / 1.0;

	1.0 + a;
	1.0 - a;
	1.0 * a;
	1.0 / a;
}

TEST(Double, unary_functions)
{
	adv::Context ctx;
	auto x = ctx.new_independent();

	adv::sin(x);
	adv::cos(x);
	adv::tan(x);
	adv::abs(x);
	adv::exp(x);
	adv::ln(x);
}

TEST(Double, binary_functions)
{
	adv::Context ctx;
	auto a = ctx.new_independent();
	auto b = ctx.new_independent();

	adv::min(a, b);
	adv::min(a, 1.0);
	adv::min(1.0, a);
	ASSERT_EQ(0.0, adv::min(1.0, 0.0));

	adv::max(a, b);
	adv::max(a, 1.0);
	adv::max(1.0, a);
	adv::max(1.0, 0.0);
	ASSERT_EQ(1.0, adv::max(1.0, 0.0));
}