Exemplo n.º 1
0
        /// <summary>
        /// Gets the euclidean norm of two numbers.
        /// </summary>
        /// <param name="x">The first operand.</param>
        /// <param name="y">The second operand.</param>
        /// <param name="rounding">The rounding mode.</param>
        public static mpfr_t EuclideanNorm(mpfr_t x, mpfr_t y, mpfr_rnd_t rounding = DefaultRounding)
        {
            mpfr_t z = new();

            mpfr_hypot(ref z.Value, ref x.Value, ref y.Value, (__mpfr_rnd_t)rounding);

            return(z);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Gets the log1p.
        /// </summary>
        /// <param name="rounding">The rounding mode.</param>
        public mpfr_t Log1p(mpfr_rnd_t rounding = DefaultRounding)
        {
            mpfr_t z = new();

            mpfr_log1p(ref z.Value, ref Value, (__mpfr_rnd_t)rounding);

            return(z);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Gets a number at the power of another number.
        /// </summary>
        /// <param name="op1">The first operand.</param>
        /// <param name="op2">The second operand.</param>
        /// <param name="rounding">The rounding mode.</param>
        public static mpfr_t Pow(ulong op1, ulong op2, mpfr_rnd_t rounding = DefaultRounding)
        {
            mpfr_t z = new();

            mpfr_ui_pow_ui(ref z.Value, op1, op2, (__mpfr_rnd_t)rounding);

            return(z);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Gets the log of the operand.
        /// </summary>
        /// <param name="op">The operand.</param>
        /// <param name="rounding">The rounding mode.</param>
        public static mpfr_t Log(uint op, mpfr_rnd_t rounding = DefaultRounding)
        {
            mpfr_t z = new();

            mpfr_log_ui(ref z.Value, op, (__mpfr_rnd_t)rounding);

            return(z);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Initializes a new instance of the <see cref="mpfr_t"/> class.
        /// </summary>
        /// <param name="str">The string text.</param>
        /// <param name="strbase">The digit base.</param>
        /// <param name="rounding">The rounding mode.</param>
        public mpfr_t(string str, uint strbase = 10, mpfr_rnd_t rounding = DefaultRounding)
            : this()
        {
            int Success = mpfr_set_str(ref Value, str, strbase, (__mpfr_rnd_t)rounding);

            if (Success != 0)
            {
                throw new ArgumentException();
            }
        }
Exemplo n.º 6
0
        public static MPFR URandom(mpfr_rnd_t roundingMode, bool inclusive = false)
        {
            MPFR result = new MPFR();

            if (inclusive)
            {
                mpfr_lib.mpfr_urandom(result.Value, MPFR.RandomState.Value, roundingMode);
            }
            else
            {
                mpfr_lib.mpfr_urandomb(result.Value, MPFR.RandomState.Value);
            }

            return(result);
        }
Exemplo n.º 7
0
        public static MPFR URandom(MPFR min, MPFR max, mpfr_rnd_t roundingMode, bool inclusive = false)
        {
            MPFR   result = new MPFR();
            mpfr_t tmp    = new mpfr_t();

            mpfr_lib.mpfr_init(tmp);

            if (inclusive)
            {
                mpfr_lib.mpfr_urandom(result.Value, MPFR.RandomState.Value, roundingMode);
            }
            else
            {
                mpfr_lib.mpfr_urandomb(result.Value, MPFR.RandomState.Value);
            }

            mpfr_lib.mpfr_sub(tmp, max.Value, min.Value, MPFR.RoundingMode);

            mpfr_lib.mpfr_mul(result.Value, result.Value, tmp, MPFR.RoundingMode);
            mpfr_lib.mpfr_add(result.Value, result.Value, min.Value, MPFR.RoundingMode);

            mpfr_lib.mpfr_clear(tmp);
            return(result);
        }
Exemplo n.º 8
0
 /// <summary>
 /// See https://www.mpfr.org/mpfr-current/mpfr.pdf.
 /// </summary>
 /// <param name="rop">The result operand.</param>
 /// <param name="op">The operand.</param>
 /// <param name="rnd">The rounding mode.</param>
 public static int zeta(mpfr_t rop, mpfr_t op, mpfr_rnd_t rnd)
 {
     return(mpfr_zeta(ref rop.Value, ref op.Value, (__mpfr_rnd_t)rnd));
 }
Exemplo n.º 9
0
 /// <summary>
 /// See https://www.mpfr.org/mpfr-current/mpfr.pdf.
 /// </summary>
 /// <param name="rop">The result operand.</param>
 /// <param name="sign">The sign.</param>
 /// <param name="op">The operand.</param>
 /// <param name="rnd">The rounding mode.</param>
 public static int lgamma(mpfr_t rop, out int sign, mpfr_t op, mpfr_rnd_t rnd)
 {
     return(mpfr_lgamma(ref rop.Value, out sign, ref op.Value, (__mpfr_rnd_t)rnd));
 }
Exemplo n.º 10
0
 /// <summary>
 /// See https://www.mpfr.org/mpfr-current/mpfr.pdf.
 /// </summary>
 /// <param name="rop">The result operand.</param>
 /// <param name="op">The operand.</param>
 /// <param name="op2">The second operand.</param>
 /// <param name="rnd">The rounding mode.</param>
 public static int gamma_inc(mpfr_t rop, mpfr_t op, mpfr_t op2, mpfr_rnd_t rnd)
 {
     return(mpfr_gamma_inc(ref rop.Value, ref op.Value, ref op2.Value, (__mpfr_rnd_t)rnd));
 }
Exemplo n.º 11
0
 /// <summary>
 /// See https://www.mpfr.org/mpfr-current/mpfr.pdf.
 /// </summary>
 /// <param name="rop">The result operand.</param>
 /// <param name="op">The operand.</param>
 /// <param name="rnd">The rounding mode.</param>
 public static int set_sj(mpfr_t rop, int op, mpfr_rnd_t rnd)
 {
     return(mpfr_set_sj(ref rop.Value, op, (__mpfr_rnd_t)rnd));
 }
Exemplo n.º 12
0
 /// <summary>
 /// See https://www.mpfr.org/mpfr-current/mpfr.pdf.
 /// </summary>
 /// <param name="rop">The result operand.</param>
 /// <param name="n">The n.</param>
 /// <param name="op">The operand.</param>
 /// <param name="rnd">The rounding mode.</param>
 public static int yn(mpfr_t rop, long n, mpfr_t op, mpfr_rnd_t rnd)
 {
     return(mpfr_yn(ref rop.Value, n, ref op.Value, (__mpfr_rnd_t)rnd));
 }
Exemplo n.º 13
0
 /// <summary>
 /// See https://www.mpfr.org/mpfr-current/mpfr.pdf.
 /// </summary>
 /// <param name="rop">The result operand.</param>
 /// <param name="rnd">The rounding mode.</param>
 public static int const_catalan(mpfr_t rop, mpfr_rnd_t rnd)
 {
     return(mpfr_const_catalan(ref rop.Value, (__mpfr_rnd_t)rnd));
 }
Exemplo n.º 14
0
 /// <summary>
 /// See https://www.mpfr.org/mpfr-current/mpfr.pdf.
 /// </summary>
 /// <param name="rop">The result operand.</param>
 /// <param name="op1">The first operand.</param>
 /// <param name="op2">The second operand.</param>
 /// <param name="rnd">The rounding mode.</param>
 public static int ui_pow_ui(mpfr_t rop, ulong op1, ulong op2, mpfr_rnd_t rnd)
 {
     return(mpfr_ui_pow_ui(ref rop.Value, op1, op2, (__mpfr_rnd_t)rnd));
 }
Exemplo n.º 15
0
 /// <summary>
 /// See https://www.mpfr.org/mpfr-current/mpfr.pdf.
 /// </summary>
 /// <param name="rop">The result operand.</param>
 /// <param name="op1">The first operand.</param>
 /// <param name="op2">The second operand.</param>
 /// <param name="rnd">The rounding mode.</param>
 public static int ui_pow(mpfr_t rop, ulong op1, mpfr_t op2, mpfr_rnd_t rnd)
 {
     return(mpfr_ui_pow(ref rop.Value, op1, ref op2.Value, (__mpfr_rnd_t)rnd));
 }
Exemplo n.º 16
0
 /// <summary>
 /// See https://www.mpfr.org/mpfr-current/mpfr.pdf.
 /// </summary>
 /// <param name="rop">The result operand.</param>
 /// <param name="op1">The first operand.</param>
 /// <param name="op2">The second operand.</param>
 /// <param name="rnd">The rounding mode.</param>
 public static int pow_si(mpfr_t rop, mpfr_t op1, long op2, mpfr_rnd_t rnd)
 {
     return(mpfr_pow_si(ref rop.Value, ref op1.Value, op2, (__mpfr_rnd_t)rnd));
 }
Exemplo n.º 17
0
 /// <summary>
 /// See https://www.mpfr.org/mpfr-current/mpfr.pdf.
 /// </summary>
 /// <param name="rop">The result operand.</param>
 /// <param name="op1">The first operand.</param>
 /// <param name="op2">The second operand.</param>
 /// <param name="rnd">The rounding mode.</param>
 public static int pow_z(mpfr_t rop, mpfr_t op1, mpz_t op2, mpfr_rnd_t rnd)
 {
     return(mpfr_pow_z(ref rop.Value, ref op1.Value, ref op2.Value, (__mpfr_rnd_t)rnd));
 }
Exemplo n.º 18
0
 /// <summary>
 /// See https://www.mpfr.org/mpfr-current/mpfr.pdf.
 /// </summary>
 /// <param name="rop">The result operand.</param>
 /// <param name="op">The operand.</param>
 /// <param name="rnd">The rounding mode.</param>
 public static int set_z(mpfr_t rop, mpz_t op, mpfr_rnd_t rnd)
 {
     return(mpfr_set_z(ref rop.Value, ref op.Value, (__mpfr_rnd_t)rnd));
 }
Exemplo n.º 19
0
 /// <summary>
 /// See https://www.mpfr.org/mpfr-current/mpfr.pdf.
 /// </summary>
 /// <param name="rop">The result operand.</param>
 /// <param name="op">The operand.</param>
 /// <param name="rnd">The rounding mode.</param>
 public static int set_d(mpfr_t rop, double op, mpfr_rnd_t rnd)
 {
     return(mpfr_set_d(ref rop.Value, op, (__mpfr_rnd_t)rnd));
 }
Exemplo n.º 20
0
 /// <summary>
 /// See https://www.mpfr.org/mpfr-current/mpfr.pdf.
 /// </summary>
 /// <param name="rop">The result operand.</param>
 /// <param name="op">The operand.</param>
 /// <param name="rnd">The rounding mode.</param>
 public static int set_flt(mpfr_t rop, float op, mpfr_rnd_t rnd)
 {
     return(mpfr_set_flt(ref rop.Value, op, (__mpfr_rnd_t)rnd));
 }
Exemplo n.º 21
0
 /// <summary>
 /// See https://www.mpfr.org/mpfr-current/mpfr.pdf.
 /// </summary>
 /// <param name="rop">The result operand.</param>
 /// <param name="op">The operand.</param>
 /// <param name="rnd">The rounding mode.</param>
 public static int zeta_ui(mpfr_t rop, ulong op, mpfr_rnd_t rnd)
 {
     return(mpfr_zeta_ui(ref rop.Value, op, (__mpfr_rnd_t)rnd));
 }
Exemplo n.º 22
0
 /// <summary>
 /// See https://www.mpfr.org/mpfr-current/mpfr.pdf.
 /// </summary>
 /// <param name="rop">The result operand.</param>
 /// <param name="str">The string.</param>
 /// <param name="strbase">The string base.</param>
 /// <param name="rnd">The rounding mode.</param>
 public static bool set_str(mpfr_t rop, string str, uint strbase, mpfr_rnd_t rnd)
 {
     return(mpfr_set_str(ref rop.Value, str, strbase, (__mpfr_rnd_t)rnd) == 0);
 }
Exemplo n.º 23
0
 /// <summary>
 /// See https://www.mpfr.org/mpfr-current/mpfr.pdf.
 /// </summary>
 /// <param name="rop">The result operand.</param>
 /// <param name="op">The operand.</param>
 /// <param name="rnd">The rounding mode.</param>
 public static int log1p(mpfr_t rop, mpfr_t op, mpfr_rnd_t rnd)
 {
     return(mpfr_log1p(ref rop.Value, ref op.Value, (__mpfr_rnd_t)rnd));
 }
Exemplo n.º 24
0
 /// <summary>
 /// See https://www.mpfr.org/mpfr-current/mpfr.pdf.
 /// </summary>
 /// <param name="rop">The result operand.</param>
 /// <param name="x">The first operand.</param>
 /// <param name="y">The second operand.</param>
 /// <param name="rnd">The rounding mode.</param>
 public static int atan2(mpfr_t rop, mpfr_t x, mpfr_t y, mpfr_rnd_t rnd)
 {
     return(mpfr_atan2(ref rop.Value, ref x.Value, ref y.Value, (__mpfr_rnd_t)rnd));
 }
Exemplo n.º 25
0
 /// <summary>
 /// See https://www.mpfr.org/mpfr-current/mpfr.pdf.
 /// </summary>
 /// <param name="rop">The result operand.</param>
 /// <param name="op1">The first operand.</param>
 /// <param name="op2">The second operand.</param>
 /// <param name="rnd">The rounding mode.</param>
 public static int agm(mpfr_t rop, mpfr_t op1, mpfr_t op2, mpfr_rnd_t rnd)
 {
     return(mpfr_agm(ref rop.Value, ref op1.Value, ref op2.Value, (__mpfr_rnd_t)rnd));
 }
Exemplo n.º 26
0
 /// <summary>
 /// See https://www.mpfr.org/mpfr-current/mpfr.pdf.
 /// </summary>
 /// <param name="sop">The sinus result operand.</param>
 /// <param name="cop">The cosinus result operand.</param>
 /// <param name="op">The operand.</param>
 /// <param name="rnd">The rounding mode.</param>
 public static int sinh_cosh(mpfr_t sop, mpfr_t cop, mpfr_t op, mpfr_rnd_t rnd)
 {
     return(mpfr_sinh_cosh(ref sop.Value, ref cop.Value, ref op.Value, (__mpfr_rnd_t)rnd));
 }
Exemplo n.º 27
0
 /// <summary>
 /// See https://www.mpfr.org/mpfr-current/mpfr.pdf.
 /// </summary>
 /// <param name="rop">The result operand.</param>
 /// <param name="op">The operand.</param>
 /// <param name="rnd">The rounding mode.</param>
 public static int exp10(mpfr_t rop, mpfr_t op, mpfr_rnd_t rnd)
 {
     return(mpfr_exp10(ref rop.Value, ref op.Value, (__mpfr_rnd_t)rnd));
 }
Exemplo n.º 28
0
 /// <summary>
 /// See https://www.mpfr.org/mpfr-current/mpfr.pdf.
 /// </summary>
 /// <param name="rop">The result operand.</param>
 /// <param name="op">The operand.</param>
 /// <param name="rnd">The rounding mode.</param>
 public static int atanh(mpfr_t rop, mpfr_t op, mpfr_rnd_t rnd)
 {
     return(mpfr_atanh(ref rop.Value, ref op.Value, (__mpfr_rnd_t)rnd));
 }
Exemplo n.º 29
0
 /// <summary>
 /// See https://www.mpfr.org/mpfr-current/mpfr.pdf.
 /// </summary>
 /// <param name="rop">The result operand.</param>
 /// <param name="op">The operand.</param>
 /// <param name="rnd">The rounding mode.</param>
 public static int log_ui(mpfr_t rop, uint op, mpfr_rnd_t rnd)
 {
     return(mpfr_log_ui(ref rop.Value, op, (__mpfr_rnd_t)rnd));
 }
Exemplo n.º 30
0
 /// <summary>
 /// See https://www.mpfr.org/mpfr-current/mpfr.pdf.
 /// </summary>
 /// <param name="rop">The result operand.</param>
 /// <param name="op">The operand.</param>
 /// <param name="rnd">The rounding mode.</param>
 public static int set_si(mpfr_t rop, long op, mpfr_rnd_t rnd)
 {
     return(mpfr_set_si(ref rop.Value, op, (__mpfr_rnd_t)rnd));
 }