Esempio n. 1
0
        public static double Force_Calc(double r)
        {
            ulong abs_r     = Funcs.FromDouble(Math.Abs(r));
            ulong abs_sigma = Funcs.FromDouble(Math.Abs(SIGMA));
            ulong ln_r      = Funcs.FromDouble((double)Math.Log(Funcs.FromUlong(abs_r)));
            ulong ln_sigma  = Funcs.FromDouble((double)Math.Log(Funcs.FromUlong(abs_sigma)));

            ulong mul_12 = Funcs.FromDouble(12 * Funcs.FromUlong(ln_sigma));
            ulong mul_6  = Funcs.FromDouble(6 * Funcs.FromUlong(ln_sigma));
            ulong mul_14 = Funcs.FromDouble(14 * Funcs.FromUlong(ln_r));
            ulong mul_8  = Funcs.FromDouble(8 * Funcs.FromUlong(ln_r));

            ulong exp_12 = Funcs.FromDouble((double)Math.Exp(Funcs.FromUlong(mul_12)));
            ulong exp_6  = Funcs.FromDouble((double)Math.Exp(Funcs.FromUlong(mul_6)));
            ulong exp_14 = Funcs.FromDouble((double)Math.Exp(Funcs.FromUlong(mul_14)));
            ulong exp_8  = Funcs.FromDouble((double)Math.Exp(Funcs.FromUlong(mul_8)));

            ulong div_12_14         = Funcs.FromDouble(Funcs.FromUlong(exp_12) / Funcs.FromUlong(exp_14));
            ulong div_6_8           = Funcs.FromDouble(Funcs.FromUlong(exp_6) / Funcs.FromUlong(exp_8));
            ulong mul_epsilon_12_14 = Funcs.FromDouble(EPSILON * Funcs.FromUlong(div_12_14));
            ulong mul_epsilon_6_8   = Funcs.FromDouble(EPSILON * Funcs.FromUlong(div_6_8));


            ulong mul_48 = Funcs.FromDouble(48 * Funcs.FromUlong(mul_epsilon_12_14));
            ulong mul_24 = Funcs.FromDouble(24 * Funcs.FromUlong(mul_epsilon_6_8));

            ulong min = Funcs.FromDouble(Funcs.FromUlong(mul_48) - Funcs.FromUlong(mul_24));

            double force_result = Funcs.FromUlong(min);

            // double force_result = (48 * EPSILON * ((double) Math.Exp((double)Math.Log(Math.Abs(SIGMA)) * 12)  / (double) Math.Exp((double)Math.Log(Math.Abs(r)) * 14))) - (24 * EPSILON * ((double) Math.Exp((double)Math.Log(Math.Abs(SIGMA)) * 6)  / (double) Math.Exp((double)Math.Log(Math.Abs(r)) * 8)));
            return(force_result);
        }
Esempio n. 2
0
 protected override void OnTick()
 {
     if (input.valid)
     {
         double double_input  = Funcs.FromUlong(input.val);
         double double_output = Math.Sqrt(double_input);
         output.val   = Funcs.FromDouble(double_output);
         output.valid = true;
     }
     else
     {
         output.valid = false;
     }
 }
Esempio n. 3
0
 protected override void OnTick()
 {
     if (input.valid)
     {
         double double_val    = Funcs.FromUlong(input.val);
         double double_result = (double)Math.Log(double_val);
         output.val   = Funcs.FromDouble(double_result);
         output.valid = true;
     }
     else
     {
         output.valid = false;
     }
 }
Esempio n. 4
0
 protected override void OnTick()
 {
     if (minuend.valid && subtrahend.valid)
     {
         double double_minuend    = Funcs.FromUlong(minuend.val);
         double double_subtrahend = Funcs.FromUlong(subtrahend.val);
         double double_difference = double_minuend - double_subtrahend;
         difference.val   = Funcs.FromDouble(double_difference);
         difference.valid = true;
     }
     else
     {
         difference.valid = false;
     }
 }
Esempio n. 5
0
 protected override void OnTick()
 {
     if (augend.valid && addend.valid)
     {
         double double_augend = Funcs.FromUlong(augend.val);
         double double_addend = Funcs.FromUlong(addend.val);
         double double_sum    = double_augend + double_addend;
         sum.val   = Funcs.FromDouble(double_sum);
         sum.valid = true;
     }
     else
     {
         sum.valid = false;
     }
 }
Esempio n. 6
0
 protected override void OnTick()
 {
     if (divident.valid && divisor.valid)
     {
         double double_divident = Funcs.FromUlong(divident.val);
         double double_divisor  = Funcs.FromUlong(divisor.val);
         double double_quotient = double_divident / double_divisor;
         quotient.val   = Funcs.FromDouble(double_quotient);
         quotient.valid = true;
     }
     else
     {
         quotient.valid = false;
     }
 }
Esempio n. 7
0
 protected override void OnTick()
 {
     if (multiplicant.valid && multiplier.valid)
     {
         double double_multiplicant = Funcs.FromUlong(multiplicant.val);
         double double_multiplier   = Funcs.FromUlong(multiplier.val);
         double double_product      = double_multiplicant * double_multiplier;
         product.val   = Funcs.FromDouble(double_product);
         product.valid = true;
     }
     else
     {
         product.valid = false;
     }
 }
Esempio n. 8
0
 public Constants(double elem)
 {
     this.val = Funcs.FromDouble(elem);
 }