public static void Register(CalcEngine ce)
{
ce.RegisterFunction("ABS", 1, Abs);
ce.RegisterFunction("ACOS", 1, Acos);
//ce.RegisterFunction("ACOSH", Acosh, 1);
ce.RegisterFunction("ASIN", 1, Asin);
//ce.RegisterFunction("ASINH", Asinh, 1);
ce.RegisterFunction("ATAN", 1, Atan);
ce.RegisterFunction("ATAN2", 2, Atan2);
//ce.RegisterFunction("ATANH", Atanh, 1);
ce.RegisterFunction("CEILING", 1, Ceiling);
//ce.RegisterFunction("COMBIN", Combin, 1);
ce.RegisterFunction("COS", 1, Cos);
ce.RegisterFunction("COSH", 1, Cosh);
//ce.RegisterFunction("DEGREES", Degrees, 1);
//ce.RegisterFunction("EVEN", Even, 1);
ce.RegisterFunction("EXP", 1, Exp);
//ce.RegisterFunction("FACT", Fact, 1);
//ce.RegisterFunction("FACTDOUBLE", FactDouble, 1);
ce.RegisterFunction("FLOOR", 1, Floor);
//ce.RegisterFunction("GCD", Gcd, 1);
ce.RegisterFunction("INT", 1, Int);
//ce.RegisterFunction("LCM", Lcm, 1);
ce.RegisterFunction("LN", 1, Ln);
ce.RegisterFunction("LOG", 1, 2, Log);
ce.RegisterFunction("LOG10", 1, Log10);
//ce.RegisterFunction("MDETERM", MDeterm, 1);
//ce.RegisterFunction("MINVERSE", MInverse, 1);
//ce.RegisterFunction("MMULT", MMult, 1);
//ce.RegisterFunction("MOD", Mod, 2);
//ce.RegisterFunction("MROUND", MRound, 1);
//ce.RegisterFunction("MULTINOMIAL", Multinomial, 1);
//ce.RegisterFunction("ODD", Odd, 1);
ce.RegisterFunction("PI", 0, Pi);
ce.RegisterFunction("POWER", 2, Power);
//ce.RegisterFunction("PRODUCT", Product, 1);
//ce.RegisterFunction("QUOTIENT", Quotient, 1);
//ce.RegisterFunction("RADIANS", Radians, 1);
ce.RegisterFunction("RAND", 0, Rand);
ce.RegisterFunction("RANDBETWEEN", 2, RandBetween);
//ce.RegisterFunction("ROMAN", Roman, 1);
//ce.RegisterFunction("ROUND", Round, 1);
//ce.RegisterFunction("ROUNDDOWN", RoundDown, 1);
//ce.RegisterFunction("ROUNDUP", RoundUp, 1);
//ce.RegisterFunction("SERIESSUM", SeriesSum, 1);
ce.RegisterFunction("SIGN", 1, Sign);
ce.RegisterFunction("SIN", 1, Sin);
ce.RegisterFunction("SINH", 1, Sinh);
ce.RegisterFunction("SQRT", 1, Sqrt);
//ce.RegisterFunction("SQRTPI", SqrtPi, 1);
//ce.RegisterFunction("SUBTOTAL", Subtotal, 1);
ce.RegisterFunction("SUM", 1, int.MaxValue, Sum);
ce.RegisterFunction("SUMIF", 2, 3, SumIf);
//ce.RegisterFunction("SUMPRODUCT", SumProduct, 1);
//ce.RegisterFunction("SUMSQ", SumSq, 1);
//ce.RegisterFunction("SUMX2MY2", SumX2MY2, 1);
//ce.RegisterFunction("SUMX2PY2", SumX2PY2, 1);
//ce.RegisterFunction("SUMXMY2", SumXMY2, 1);
ce.RegisterFunction("TAN", 1, Tan);
ce.RegisterFunction("TANH", 1, Tanh);
ce.RegisterFunction("TRUNC", 1, Trunc);
}