tanh()#

relationalai.std.math
#tanh(number: Number|Producer) -> Expression

Calculates the hyperbolic tangent of a number. If number is a Producer, tanh() filters out any non-numeric values from the producer. Must be called in a rule or query context.

Parameters#

NameTypeDescription
numberProducer or Python Number objectThe value to calculate the hyperbolic tangent of.

Returns#

An Expression object.

Example#

Use tanh() to calculate the hyperbolic tangent of a number:

#import relationalai as rai
from relationalai.std import math


# =====
# SETUP
# =====

model = rai.Model("MyModel")
Portfolio = model.Type("Portfolio")
Investment = model.Type("Investment")

# Define portfolios and their investments.
with model.rule():
    portfolio1 = Portfolio.add(id=1).set(name="Portfolio1")
    portfolio1.investments.extend([
        Investment.add(id=1).set(name="InvestmentA", growth_rate=0.5),
        Investment.add(id=2).set(name="InvestmentB", growth_rate=1.0),
    ])

    portfolio2 = Portfolio.add(id=2).set(name="Portfolio2")
    portfolio2.investments.extend([
        Investment.add(id=3).set(name="InvestmentC", growth_rate=1.2),
        Investment.add(id=4).set(name="InvestmentD", growth_rate="N/A"),  # Non-numeric value
    ])


# =======
# EXAMPLE
# =======

# Set a growth_tanh property to the hyperbolic tangent of each investment's growth rate.
with model.rule():
    portfolio = Portfolio()
    investment = portfolio.investments
    investment.set(growth_tanh=math.tanh(investment.growth_rate))

# Since tanh() filters out non-numeric values, the growth_tanh property
# is not set for the investment with ID 4.
with model.query() as select:
    portfolio = Portfolio()
    investment = portfolio.investments
    response = select(portfolio.name, investment.name, investment.growth_tanh)

print(response.results)
#          name        name2  growth_tanh
# 0  Portfolio1  InvestmentA     0.462117
# 1  Portfolio1  InvestmentB     0.761594
# 2  Portfolio2  InvestmentC     0.833655
# 3  Portfolio2  InvestmentD          NaN

See Also#