The Trigonometry module in Fossil Math provides a comprehensive suite of trigonometric and hyperbolic functions, including standard, inverse, and hyperbolic variants. It supports both degrees and radians conversions and wraps standard C math operations into a consistent API. The module is designed for scientific calculations, physics simulations, graphics computations, or any scenario requiring precise angular computations. Its C++ wrapper offers a clean, static-method interface for modern C++ projects, simplifying usage while maintaining full compatibility with the underlying C API.
Code reference for C and C++ APIs for the respective Fossil Logic library.
HEADER REFERENCE #
#include <fossil/math/trig.h>
#include <iostream>
int main() {
using namespace fossil::math;
double deg = 60.0;
double rad = Trigonometry::deg_to_rad(deg);
std::cout << deg << " degrees = " << rad << " radians\n";
std::cout << "sin: " << Trigonometry::sin(rad)
<< ", cos: " << Trigonometry::cos(rad)
<< ", tan: " << Trigonometry::tan(rad) << "\n";
double angle = Trigonometry::atan2(1.0, 1.0);
std::cout << "atan2(1,1) = " << angle << " radians\n";
std::cout << "sinh: " << Trigonometry::sinh(1.0)
<< ", cosh: " << Trigonometry::cosh(1.0)
<< ", tanh: " << Trigonometry::tanh(1.0) << "\n";
double asin_val = Trigonometry::asin(0.5);
std::cout << "asin(0.5) = " << asin_val << " radians\n";
return 0;
}
SAMPLE CODE C #
#include <fossil/math/trig.h>
#include <iostream>
int main() {
using namespace fossil::math;
double deg = 60.0;
double rad = Trigonometry::deg_to_rad(deg);
std::cout << deg << " degrees = " << rad << " radians\n";
std::cout << "sin: " << Trigonometry::sin(rad)
<< ", cos: " << Trigonometry::cos(rad)
<< ", tan: " << Trigonometry::tan(rad) << "\n";
double angle = Trigonometry::atan2(1.0, 1.0);
std::cout << "atan2(1,1) = " << angle << " radians\n";
std::cout << "sinh: " << Trigonometry::sinh(1.0)
<< ", cosh: " << Trigonometry::cosh(1.0)
<< ", tanh: " << Trigonometry::tanh(1.0) << "\n";
double asin_val = Trigonometry::asin(0.5);
std::cout << "asin(0.5) = " << asin_val << " radians\n";
return 0;
}
SAMPLE CODE C++ #
#include <fossil/math/trig.h>
#include <iostream>
int main() {
using namespace fossil::math;
double deg = 60.0;
double rad = Trigonometry::deg_to_rad(deg);
std::cout << deg << " degrees = " << rad << " radians\n";
std::cout << "sin: " << Trigonometry::sin(rad)
<< ", cos: " << Trigonometry::cos(rad)
<< ", tan: " << Trigonometry::tan(rad) << "\n";
double angle = Trigonometry::atan2(1.0, 1.0);
std::cout << "atan2(1,1) = " << angle << " radians\n";
std::cout << "sinh: " << Trigonometry::sinh(1.0)
<< ", cosh: " << Trigonometry::cosh(1.0)
<< ", tanh: " << Trigonometry::tanh(1.0) << "\n";
double asin_val = Trigonometry::asin(0.5);
std::cout << "asin(0.5) = " << asin_val << " radians\n";
return 0;
}