//
// Math
//
// This test is for all mathematical functions Souffle implements having
// return values that are floating point numbers.
//

.decl Calculate(
      sin?:number,
      cos?:number,
      tan?:number,
     asin?:number,
     acos?:number,
     atan?:number,
     sinh?:number,
     cosh?:number,
     tanh?:number,
    asinh?:number,
    acosh?:number,
    atanh?:number,
      log?:number,
      exp?:number
)
.output Calculate()

Calculate(
      sin(1),
      cos(1),
      tan(1),
     asin(1),
     acos(1),
     atan(1),
     sinh(1),
     cosh(1),
     tanh(1),
    asinh(1),
    acosh(1),
    atanh(1),
      log(1),
      exp(1)
).

Calculate(
      sin(2),
      cos(2),
      tan(2),
     asin(2),
     acos(2),
     atan(2),
     sinh(2),
     cosh(2),
     tanh(2),
    asinh(2),
    acosh(2),
    atanh(2),
      log(2),
      exp(2)
).

Calculate(
      sin(3),
      cos(3),
      tan(3),
     asin(3),
     acos(3),
     atan(3),
     sinh(3),
     cosh(3),
     tanh(3),
    asinh(3),
    acosh(3),
    atanh(3),
      log(3),
      exp(3)
).

Calculate(
      sin(4),
      cos(4),
      tan(4),
     asin(4),
     acos(4),
     atan(4),
     sinh(4),
     cosh(4),
     tanh(4),
    asinh(4),
    acosh(4),
    atanh(4),
      log(4),
      exp(4)
).

Calculate(
      sin(5),
      cos(5),
      tan(5),
     asin(5),
     acos(5),
     atan(5),
     sinh(5),
     cosh(5),
     tanh(5),
    asinh(5),
    acosh(5),
    atanh(5),
      log(5),
      exp(5)
).

