how to do Sin? ( high precision )
in online calculator:
sin(47165.12252593838) -> -0.38205373176**570**196927678559125829662822819072674679657 5333636...
in a copy of sample Big.cpp - to have the environment - acc. to 'how to do squareroot?'
a = 47165.12252593838;
a.Sin();
std::cout << std::setprecision( 25 ) << a << std::endl;
make ->
sinlist.cpp: In function ‘int main()’:
sinlist.cpp:845:3: error: ‘MyBig’ {aka ‘class ttmath::Big<1, 2>’} has no member named ‘Sin’; did you mean
‘Sgn’?
845 | a.Sin();
other attempts with e.g. Sin( a ) -> other errors, at best 'Sin( a ) = -0.38205373176**488**19160662843485353044268', low ( double? ) precision result.
TIA for any help, I'm not a pro(grammer), just need a list of references which is too long to produce with the online calculator ...
Use global Sin method from ttmath namespace:
a = 47165.12252593838;
std::cout << ttmath::Sin(a) << std::endl;
Also std::setprecision do not work with ttmath, use Conv struct for formating, sample:
#include <iostream>
#include "ttmath/ttmath.h"
// Big<exponent, mantissa>
typedef ttmath::Big<1,2> MyBig;
int main()
{
MyBig a,b;
ttmath::Conv conv;
std::string res;
a = 47165.12252593838;
b = ttmath::Sin(a);
conv.trim_zeroes = false;
conv.group = '`';
res = b.ToString(conv);
std::cout << res << std::endl;
}
Output:
-0.382`053`731`764`881`916`066`284`348`535`304`426`8