Commit d9e4a2bd authored by Daniel Simon's avatar Daniel Simon
Browse files

MultiPrecision.h designed. Contains all arithmetics functions.

parent 98430be0
Loading
Loading
Loading
Loading
+25 −5
Original line number Diff line number Diff line
/**************************************************             
* filename:             MultiPrecision.h          *
* created:              October 22, 2017          *
* created:              October 29, 2017          *
* author:               Daniel Simon              *
* mail:                 dansimon93@gmail.com      *
***************************************************/

// TODO
// Implementation of GNU MP Library
// Operators overloading
// Implementation of missing functions
/*IMPLEMENTATION OF GMP LIBRARY - FLOATING POINT FUNCTIONS*/
/* Source: https://gmplib.org/ */

#include<gmp.h>

class MultiPrecision{
public:
    mpf_t number; // number
    
    MultiPrecision(mpf_t n); // inits value to 0
    
    /* ARITHMETIC FUNCTIONS */
    MultiPrecision addition( MultiPrecision r, MultiPrecision a, MultiPrecision b ); // r = a + b
    MultiPrecision subtraction( MultiPrecision r, MultiPrecision a, MultiPrecision b ); // r = a - b
    MultiPrecision multiplication( MultiPrecision r, MultiPrecision a, MultiPrecision b ); // r = a * b
    MultiPrecision division( MultiPrecision r, MultiPrecision a, MultiPrecision b ); // r = a / b
    MultiPrecision sqrt( MultiPrecision r, MultiPrecision a ); // r = sqrt(a)  
    MultiPrecision power( MultiPrecision r, MultiPrecision b, unsigned long int c ); // r = b ** c
    MultiPrecision negation( MultiPrecision r, MultiPrecision b); // r = -b
    MultiPrecision abs( MultiPrecision r, MultiPrecision a ); // r = |a|
    
    void freeMultiPrecision(); // free memory
    ~MultiPrecision(); // destructor
};