示例#1
0
def machin(n):
    # Machin Series
    a = rational(pow(-1,n),(2*n+1))
    b = rational(1,5)
    b = b.power(2*n+1)
    b = b.multiply(rational(4,1))
    c = rational(1,239).power(2*n+1)
    return a.multiply(b.subtract(c))
示例#2
0
def chudnovsky(n):
    # Chudnovsky's Formula
    num = pow(-1,n) * productSequence(1,6*n) * ((545140134*n)+13591409)
    den = productSequence(1,3*n) * pow(productSequence(1,n),3) * decimal.Decimal.sqrt(pow(640320,3*(2*n+1)))
    # a = rational(pow(-1,n),1)
    # b = rational(productSequence(1,6*n),1)
    # c = rational(1,pow(productSequence(1,n),3)*productSequence(1,3*n))
    # d = rational(13591409+(545140134*n),pow(640320,3*n))
    return rational(num,den)
示例#3
0
def main():
    decimal.getcontext().prec = 3000
    decimal.getcontext().Emax = 999999999999999999
    a = decimal.Decimal(0)
    b = decimal.Decimal(100)
    op = lambda x,y: x.add(y)
    r = lambda x: x
    pi = processSequence(m=a,n=b,
                          oper=op,
                          baseVal=rational(0,1),
                          rule=chudnovsky,
                          coeff=12).value()
    print(pow(12*pi,-1))
示例#4
0
 def test_OtherFractions(self):
     self.assertEqual( (337,218), rational(337.0/218))
示例#5
0
 def test_NastyFractions(self):
     self.assertEqual( (1,3), rational(1.0/3))
     self.assertEqual( (10,3), rational(3+1.0/3))
     self.assertEqual( (-1,3), rational(-1.0/3))
     self.assertEqual( (-10,3), rational(-3-1.0/3))
示例#6
0
 def test_EasyFractions(self):
     self.assertEqual( (1,2), rational(0.5))
     self.assertEqual( (1,4), rational(0.25))
     self.assertEqual( (-1,2), rational(-0.5))
示例#7
0
 def test_Integers(self):
     self.assertEqual( (2,1), rational(2.0))
     self.assertEqual( (-100,1), rational(-100.0))
示例#8
0
 def test_Identities(self):
     self.assertEqual( (1,1), rational(1.0))
     self.assertEqual( (0,1), rational(0.0))
     self.assertEqual( (-1,1), rational(-1.0))
示例#9
0
 def test_OtherFractions(self):
     self.assertEqual((337, 218), rational(337.0 / 218))
示例#10
0
 def test_NastyFractions(self):
     self.assertEqual((1, 3), rational(1.0 / 3))
     self.assertEqual((10, 3), rational(3 + 1.0 / 3))
     self.assertEqual((-1, 3), rational(-1.0 / 3))
     self.assertEqual((-10, 3), rational(-3 - 1.0 / 3))
示例#11
0
 def test_EasyFractions(self):
     self.assertEqual((1, 2), rational(0.5))
     self.assertEqual((1, 4), rational(0.25))
     self.assertEqual((-1, 2), rational(-0.5))
示例#12
0
 def test_Integers(self):
     self.assertEqual((2, 1), rational(2.0))
     self.assertEqual((-100, 1), rational(-100.0))
示例#13
0
 def test_Identities(self):
     self.assertEqual((1, 1), rational(1.0))
     self.assertEqual((0, 1), rational(0.0))
     self.assertEqual((-1, 1), rational(-1.0))