44using namespace std::literals;
68 std::string
abs(
const std::string& _number,
int steps);
81 std::string
add(
const std::string& a,
84 bool negative =
false,
85 bool properlyFormat =
true);
98 std::string
compare(
const std::string& _a,
const std::string& _b,
int steps = 2);
108 std::string
decimalConvert(
const std::string& _inputString,
const std::string& baseString,
int steps = 2);
118 std::string
baseConvert(
const std::string& _number,
const std::string& baseStr,
int steps = 2);
129 std::string
divide(
const std::string& number,
const std::string& divisor,
int steps = 2,
int decimals = 5);
148 std::string
getGCD(
const std::string& _a,
const std::string& _b);
158 std::string
multiply(
const std::string& a,
const std::string& b,
int steps = 2,
int decimals = MAX_DECIMALS);
169 std::string
power(
const std::string& _number,
const std::string& raiseTo,
int steps = 2,
int decimals = 8);
178 std::string
exp(
const std::string& x,
size_t decimals = 10);
189 std::string
subtract(
const std::string& a,
const std::string& b,
int steps = 2,
bool noMinus =
false);
201 std::string
root(
const std::string& _number,
const std::string& base,
size_t decimals = 8,
int steps = 0);
210 Surd rootSurd(
const std::string& _number,
const std::string& base);
220 std::string
rootIntPart(
const std::string& _number,
const std::string& base);
230 std::string
factorial(
const std::string& _number,
int steps = 2);
238 std::string
degToRad(
const std::string& _deg);
246 std::string
gradToRad(
const std::string& _grad);
257 std::string
cos(
const std::string& x,
int decimals,
int mode = 0);
268 std::string
sin(
const std::string& x,
int decimals,
int mode = 0);
279 std::string
tan(
const std::string& x,
int decimals,
int mode = 0);
290 std::string
sec(
const std::string& x,
int decimals,
int mode = 0);
301 std::string
csc(
const std::string& x,
int decimals,
int mode = 0);
312 std::string
cot(
const std::string& x,
int decimals,
int mode = 0);
323 std::string
acos(
const std::string& x,
int decimals,
int mode = 0);
334 std::string
asin(
const std::string& x,
int decimals,
int mode = 0);
345 std::string
atan(
const std::string& x,
int decimals,
int mode = 0);
356 std::string
asec(
const std::string& x,
int decimals,
int mode = 0);
367 std::string
acsc(
const std::string& x,
int decimals,
int mode = 0);
378 std::string
acot(
const std::string& x,
int decimals,
int mode = 0);
388 std::string
sinh(
const std::string& x,
int decimals);
398 std::string
cosh(
const std::string& x,
int decimals);
408 std::string
tanh(
const std::string& x,
int decimals);
418 std::string
sech(
const std::string& x,
int decimals);
428 std::string
csch(
const std::string& x,
int decimals);
438 std::string
coth(
const std::string& x,
int decimals);
448 std::string
asinh(
const std::string& x,
int decimals);
458 std::string
acosh(
const std::string& x,
int decimals);
468 std::string
atanh(
const std::string& x,
int decimals);
478 std::string
acoth(
const std::string& x,
int decimals);
488 std::string
asech(
const std::string& x,
int decimals);
498 std::string
acsch(
const std::string& x,
int decimals);
508 std::string
logb(
const std::string& _number,
const std::string& _base,
size_t _decimals);
519 std::string
log10(
const std::string& _number,
size_t _decimals);
530 std::string
log2(
const std::string& _number,
size_t _decimals);
541 std::string
ln(
const std::string& _number,
size_t _decimals);
549 template<
typename Pred>
550 void loop(
const std::string& times, Pred predicate)
556 return predicate(
"1");
558 std::string current =
"0";
559 auto result =
compare(current, times, 0);
561 while (result ==
"0")
567 catch (std::exception& e)
570 output::error(
"loop",
"Exception message: {0}"s, { e.what() });
572 current =
add(current,
"1", 0);
573 result =
compare(current, times, 0);
Definition baseConvert.cpp:66
std::string degToRad(const std::string &_deg)
Converts degrees to radians.
Definition trig.cpp:52
std::string log10(const std::string &_number, const size_t _decimals)
Calculates the common logarithm of a number.
Definition log.cpp:125
std::string factorial(const std::string &_number, const int steps)
Calculates the factorial of a number.
Definition factorial.cpp:51
std::string subtract(const std::string &a, const std::string &b, const int steps, const bool noMinus)
Subtracts one string representation of a number from another string representation of a number.
Definition subtract.cpp:52
std::string coth(const std::string &x, const int decimals)
Hyperbolic tangent function.
Definition hyp.cpp:90
std::string rootIntPart(const std::string &_number, const std::string &base)
Gets the integer part of the root of a number.
Definition root.cpp:92
std::string acot(const std::string &x, const int decimals, const int mode)
Calculates the arc cotangent of a number.
Definition trig.cpp:465
void loop(const std::string ×, Pred predicate)
Executes a given predicate function a specified number of times.
Definition calc.hpp:550
std::string compare(const std::string &_a, const std::string &_b, const int steps)
Compares two string representations of numbers.
Definition comparison.cpp:47
std::string gradToRad(const std::string &_grad)
Converts gradians to radians.
Definition trig.cpp:60
std::string multiply(const std::string &_a, const std::string &_b, const int steps, const int decimals)
Multiplies two string representations of numbers.
Definition multiply.cpp:51
std::string sech(const std::string &x, const int decimals)
Hyperbolic tangent function.
Definition hyp.cpp:118
std::string cosh(const std::string &x, const int decimals)
Hyperbolic cosine function.
Definition hyp.cpp:66
std::string power(const std::string &_number, const std::string &_raiseTo, const int steps, const int decimals)
Raises a string representation of a number to a power.
Definition power.cpp:62
std::string csch(const std::string &x, const int decimals)
Hyperbolic tangent function.
Definition hyp.cpp:104
std::string ln(const std::string &_number, const size_t _decimals)
Calculates the natural logarithm of a number.
Definition log.cpp:137
std::string sinh(const std::string &x, const int decimals)
Hyperbolic sine function.
Definition hyp.cpp:52
std::string sin(const std::string &x, const int decimals, const int mode)
Calculates the sine of a number.
Definition trig.cpp:176
std::string cos(const std::string &x, const int decimals, const int mode)
Calculates the cosine of a number.
Definition trig.cpp:140
std::string divide(const std::string &_number, const std::string &_divisor, const int steps, const int _decimals)
Divides a string representation of a number by another string representation of a number.
Definition division.cpp:117
std::string logb(const std::string &_number, const std::string &_base, const size_t _decimals)
Calculates the logarithm with a given base.
Definition log.cpp:107
std::string tan(const std::string &x, const int decimals, const int mode)
Calculates the tangent of a number.
Definition trig.cpp:215
std::string acosh(const std::string &x, const int decimals)
Inverse hyperbolic cosine function.
Definition hyp.cpp:147
QuotientRemainder divideWithQuotient(const std::string &number, const std::string &divisor)
Definition division.cpp:272
std::string csc(const std::string &x, const int decimals, const int mode)
Calculates the cosecant of a number.
Definition trig.cpp:271
std::string add(const std::string &a, const std::string &b, const int steps, const bool negative, const bool properlyFormat)
Adds two string representations of numbers, and performs with the column method.
Definition add.cpp:50
std::string log2(const std::string &_number, const size_t _decimals)
Calculates the binary logarithm of a number.
Definition log.cpp:131
std::string getGCD(const std::string &_a, const std::string &_b)
Gets the greatest common divisor of two string representations of numbers.
Definition division.cpp:284
std::string decimalConvert(const std::string &_inputString, const std::string &baseString, int steps)
Converts a string representation of a number from any base to decimal.
Definition decimalConvert.cpp:67
std::string baseConvert(const std::string &_number, const std::string &baseStr, const int steps)
Converts a string representation of a number from decimal to another one.
Definition baseConvert.cpp:87
std::string acoth(const std::string &x, const int decimals)
Inverse hyperbolic cotangent function.
Definition hyp.cpp:177
std::string atan(const std::string &_x, const int decimals, const int mode)
Calculates the arc tangent of a number.
Definition trig.cpp:310
std::string asec(const std::string &x, const int decimals, const int mode)
Calculates the arc secant of a number.
Definition trig.cpp:433
Surd rootSurd(const std::string &_number, const std::string &base)
Converts a root operation into a surd.
Definition root.cpp:119
std::string acsch(const std::string &x, const int decimals)
Inverse hyperbolic cosecant function.
Definition hyp.cpp:192
std::string cot(const std::string &x, const int decimals, const int mode)
Calculates the cotangent of a number.
Definition trig.cpp:297
std::string tanh(const std::string &x, const int decimals)
Hyperbolic tangent function.
Definition hyp.cpp:80
std::string atanh(const std::string &x, const int decimals)
Inverse hyperbolic tangent function.
Definition hyp.cpp:162
std::string root(const std::string &_number, const std::string &base, const size_t _decimals, const int steps)
Takes the n-th root of a numer.
Definition root.cpp:189
std::string asin(const std::string &x, const int decimals, const int mode)
Calculates the arc sine of a number.
Definition trig.cpp:365
std::string acos(const std::string &x, const int decimals, const int mode)
Calculates the arc cosine of a number.
Definition trig.cpp:407
std::string asech(const std::string &x, const int decimals)
Inverse hyperbolic secant function.
Definition hyp.cpp:212
std::string abs(const std::string &_number, const int steps)
Calculates the absolute value of a string representation of a number.
Definition abs.cpp:56
std::string acsc(const std::string &x, const int decimals, const int mode)
Calculates the arc cosecant of a number.
Definition trig.cpp:449
std::string exp(const std::string &x, const size_t decimals)
Calculates e^x. Shorthand of power(x, E, 0);.
Definition power.cpp:121
std::string sec(const std::string &x, const int decimals, const int mode)
Calculates the secant of a number.
Definition trig.cpp:284
std::string asinh(const std::string &x, const int decimals)
Inverse hyperbolic sine function.
Definition hyp.cpp:132
void error(const std::string &name, const std::basic_string< T > &msg, const std::vector< std::string > &args={})
Prints an error message.
Definition output.hpp:80
Represents the quotient and remainder of a division operation.
Definition calc.hpp:56
std::string quotient
Definition calc.hpp:57
std::string remainder
Definition calc.hpp:58
A struct to represent a surd. A surd is a number that cannot be simplified to remove a square root....
Definition root.hpp:34