Exemplo n.º 1
0
def test_symbolic_fun():
    x = sympy.Symbol("x")
    intgrl = Func(sympy.cos(x), x) * Dom(x, 0, 1)
    code = int_gen(intgrl, "tmp1", [])
    correct_code = """double tmp1()
{
  double ret_val = 0.0;
  ret_val += 0.841470984807897;
  return ret_val;
}

"""
    assert(code == correct_code)
Exemplo n.º 2
0
def test_symbolic_fun():
    x = sympy.Symbol("x")
    intgrl = Func(sympy.cos(x), x) * Dom(x, 0, 1)
    code = int_gen(intgrl, "tmp1", [])
    correct_code = """double tmp1()
{
  double ret_val = 0.0;
  ret_val += 0.841470984807897;
  return ret_val;
}

"""
    assert (code == correct_code)
Exemplo n.º 3
0
def test_disc_fun():
    intgrl = DiscFunc("u") * Dom("x", 0, 1)
    code = int_gen(intgrl, "tmp1", ["u"])
    correct_code = """double tmp1(double* u)
{
  double ret_val = 0.0;

  ret_val += 0.118463442528*(u[0])
           + 0.23931433525*(u[1])
           + 0.284444444444*(u[2])
           + 0.23931433525*(u[3])
           + 0.118463442528*(u[4]);
  return ret_val;
}

"""
    assert(code == correct_code)
Exemplo n.º 4
0
def test_disc_fun():
    intgrl = DiscFunc("u") * Dom("x", 0, 1)
    code = int_gen(intgrl, "tmp1", ["u"])
    correct_code = """double tmp1(double* u)
{
  double ret_val = 0.0;

  ret_val += 0.118463442528*(u[0])
           + 0.23931433525*(u[1])
           + 0.284444444444*(u[2])
           + 0.23931433525*(u[3])
           + 0.118463442528*(u[4]);
  return ret_val;
}

"""
    assert (code == correct_code)
Exemplo n.º 5
0
def test_mul_fun():
    x = sympy.Symbol("x")
    intgrl = (DiscFunc("u") * Func(sympy.cos(x), x)) * Dom("x", 0, 1)
    code = int_gen(intgrl, "tmp1", ["u"])
    correct_code = """double tmp1(double* u)
{
  double ret_val = 0.0;

  ret_val += 0.118333123748775*(u[0])
           + 0.232970501924733*(u[1])
           + 0.249623484271039*(u[2])
           + 0.171933767086186*(u[3])
           + 0.0686101077775073*(u[4]);
  return ret_val;
}

"""
    assert(code == correct_code)
Exemplo n.º 6
0
def test_mul_fun():
    x = sympy.Symbol("x")
    intgrl = (DiscFunc("u") * Func(sympy.cos(x), x)) * Dom("x", 0, 1)
    code = int_gen(intgrl, "tmp1", ["u"])
    correct_code = """double tmp1(double* u)
{
  double ret_val = 0.0;

  ret_val += 0.118333123748775*(u[0])
           + 0.232970501924733*(u[1])
           + 0.249623484271039*(u[2])
           + 0.171933767086186*(u[3])
           + 0.0686101077775073*(u[4]);
  return ret_val;
}

"""
    assert (code == correct_code)
Exemplo n.º 7
0
def test_add_fun():
    x = sympy.Symbol("x")
    intgrl = (DiscFunc("u") + Func(sympy.cos(x), x)) * Dom("x", 0, 1)
    code = int_gen(intgrl, "tmp1", ["u"])
    correct_code = """double tmp1(double* u)
{
  double ret_val = 0.0;
  ret_val += 0.841470984807897;

  ret_val += 0.118463442528*(u[0])
           + 0.23931433525*(u[1])
           + 0.284444444444*(u[2])
           + 0.23931433525*(u[3])
           + 0.118463442528*(u[4]);
  return ret_val;
}

"""
    assert(code == correct_code)
Exemplo n.º 8
0
def test_add_fun():
    x = sympy.Symbol("x")
    intgrl = (DiscFunc("u") + Func(sympy.cos(x), x)) * Dom("x", 0, 1)
    code = int_gen(intgrl, "tmp1", ["u"])
    correct_code = """double tmp1(double* u)
{
  double ret_val = 0.0;
  ret_val += 0.841470984807897;

  ret_val += 0.118463442528*(u[0])
           + 0.23931433525*(u[1])
           + 0.284444444444*(u[2])
           + 0.23931433525*(u[3])
           + 0.118463442528*(u[4]);
  return ret_val;
}

"""
    assert (code == correct_code)
Exemplo n.º 9
0
def test_complex_fun():
    x = sympy.Symbol("x")
    u = DiscFunc("u")
    v = DiscFunc("v")
    eqn = u * v + Func(sympy.cos(x), x) * u * v + Func(sympy.cos(x) * x ** 2, x)
    intgrl = eqn * Dom("x", 0, 1)
    code = int_gen(intgrl, "tmp1", ["u", "v"])
    correct_code = """double tmp1(double* u, double* v)
{
  double ret_val = 0.0;
  ret_val += 0.239133626928383;

  ret_val += 0.118463442528*(u[0]*v[0] + 0.998899924090178*u[0]*v[0])
           + 0.23931433525*(u[1]*v[1] + 0.973491628412768*u[1]*v[1])
           + 0.284444444444*(u[2]*v[2] + 0.877582561890373*u[2]*v[2])
           + 0.23931433525*(u[3]*v[3] + 0.718443242887239*u[3]*v[3])
           + 0.118463442528*(u[4]*v[4] + 0.579166925368017*u[4]*v[4]);
  return ret_val;
}

"""
    assert(code == correct_code)
Exemplo n.º 10
0
def test_complex_fun():
    x = sympy.Symbol("x")
    u = DiscFunc("u")
    v = DiscFunc("v")
    eqn = u * v + Func(sympy.cos(x), x) * u * v + Func(sympy.cos(x) * x**2, x)
    intgrl = eqn * Dom("x", 0, 1)
    code = int_gen(intgrl, "tmp1", ["u", "v"])
    correct_code = """double tmp1(double* u, double* v)
{
  double ret_val = 0.0;
  ret_val += 0.239133626928383;

  ret_val += 0.118463442528*(u[0]*v[0] + 0.998899924090178*u[0]*v[0])
           + 0.23931433525*(u[1]*v[1] + 0.973491628412768*u[1]*v[1])
           + 0.284444444444*(u[2]*v[2] + 0.877582561890373*u[2]*v[2])
           + 0.23931433525*(u[3]*v[3] + 0.718443242887239*u[3]*v[3])
           + 0.118463442528*(u[4]*v[4] + 0.579166925368017*u[4]*v[4]);
  return ret_val;
}

"""
    assert (code == correct_code)