Example #1
0
def test_exp():
    from datatable import exp
    assert exp(0) == math.exp(0)
    assert exp(1) == math.exp(1)
    assert exp(-2.5e12) == math.exp(-2.5e12)
    assert exp(12345678) == math.inf
    assert exp(None) is None
Example #2
0
def test_exp_srcs(src):
    from math import exp, inf
    DT = dt.Frame(src)
    DT1 = dt.exp(DT)
    frame_integrity_check(DT1)
    assert all([st == stype.float64 for st in DT1.stypes])
    pyans = []
    for x in src:
        if x is None:
            pyans.append(None)
        else:
            try:
                pyans.append(exp(x))
            except OverflowError:
                pyans.append(inf)
    assert DT1.to_list()[0] == pyans
Example #3
0
def test_exp_srcs(src):
    from math import exp, inf
    dt0 = dt.Frame(src)
    dt1 = dt.exp(dt0)
    dt1.internal.check()
    assert all([st == stype.float64 for st in dt1.stypes])
    pyans = []
    for x in src:
        if x is None:
            pyans.append(None)
        else:
            try:
                pyans.append(exp(x))
            except OverflowError:
                pyans.append(inf)
    assert dt1.to_list()[0] == pyans
Example #4
0
def test_exp_all_stypes():
    from datatable import exp
    src = [[-127, -5, -1, 0, 2, 127], [-32767, -299, -7, 32767, 12, -543],
           [-2147483647, -1000, 3, -589, 2147483647, 0],
           [-2**63 + 1, 2**63 - 1, 0, -2**32, 2**32, -793]]
    DT = dt.Frame(src, stypes=[dt.int8, dt.int16, dt.int32, dt.int64])
    DT1 = DT[:, [exp(f[i]) for i in range(4)]]
    frame_integrity_check(DT1)
    pyans = []
    for col in src:
        l = []
        for x in col:
            if x is None:
                l.append(None)
            else:
                try:
                    l.append(math.exp(x))
                except OverflowError:
                    l.append(math.inf)
        pyans.append(l)
    assert DT1.to_list() == pyans
Example #5
0
def test_exp_all_stypes():
    from datatable import exp
    import math
    src = [[-127, -5, -1, 0, 2, 127], [-32767, -299, -7, 32767, 12, -543],
           [-2147483647, -1000, 3, -589, 2147483647, 0],
           [-2**63 + 1, 2**63 - 1, 0, -2**32, 2**32, -793]]
    dt0 = dt.Frame(src, stypes=[dt.int8, dt.int16, dt.int32, dt.int64])
    dt1 = dt0[:, [exp(f[i]) for i in range(4)]]
    dt1.internal.check()
    pyans = []
    for col in src:
        l = []
        for x in col:
            if x is None:
                l.append(None)
            else:
                try:
                    l.append(math.exp(x))
                except OverflowError:
                    l.append(math.inf)
        pyans.append(l)
    assert dt1.topython() == pyans
Example #6
0
 def transform(self, X: dt.Frame):
     return X[:, [(dt.f[i] / dt.abs(dt.f[i])) * dt.exp(0.5 * dt.log(dt.abs(dt.f[i]))) for i in range(X.ncols)]]
 def transform(self, X: dt.Frame):
     X_diff = X[:, dt.f[0] - dt.f[1]]
     X_diff[dt.f[0] > 20, 0] = 20  # want no more than e**20
     return X_diff[:, dt.exp(dt.f[0])]
Example #8
0
 def transform(self, X: dt.Frame):
     return X[:, dt.exp(dt.f[0] - dt.f[1])]
# https://datatable.readthedocs.io/en/latest/?badge=latest
# https://datatable.readthedocs.io/en/latest/using-datatable.html

try:
    # noinspection PyUnresolvedReferences
    import datatable
except ImportError:
    pass

import data_algebra
import data_algebra.data_model
import data_algebra.expr_rep
import data_algebra.data_ops

expr_to_dt_expr_map = {
    "exp": lambda expr: datatable.exp(expr_to_dt_expr(expr.args[0])),
    "sum": lambda expr: datatable.sum(expr_to_dt_expr(expr.args[0])),
    "+":
    lambda expr: expr_to_dt_expr(expr.args[0]) + expr_to_dt_expr(expr.args[1]),
    "-":
    lambda expr: expr_to_dt_expr(expr.args[0]) - expr_to_dt_expr(expr.args[1]),
    "*":
    lambda expr: expr_to_dt_expr(expr.args[0]) * expr_to_dt_expr(expr.args[1]),
    "/":
    lambda expr: expr_to_dt_expr(expr.args[0]) / expr_to_dt_expr(expr.args[1]),
    "neg": lambda expr: -expr_to_dt_expr(expr.args[0]),
}


def expr_to_dt_expr(expr):
    if isinstance(expr, data_algebra.expr_rep.ColumnReference):