asin(number: Number | Producer) -> Expression

Calculates the arcsine of a number. Must be called in a rule or query context.


numberNumber or ProducerThe number to take the arcsine of.


An Expression object that produces float values.


asin() works with both numeric producers and Python number objects:

import relationalai as rai
from relationalai.std import alias
from relationalai.std.math import asin

# Create a model named "people" with a Person type.
model = rai.Model("people")
Person = model.Type("Person")

# Add a person to the model.
with model.rule():
    Person.add(name="Alice", age=3, height_m=0.95)

# asin() works with numeric producers, such as a person's height property.
# Inputs are assumed to be in radians.
with model.query() as select:
    person = Person()
    response = select(, alias(asin(person.height_m), "asin_height"))

# Output:
#     name  asin_height
# 0  Alice     1.253236

# asin() also works with Python number objects.
with model.query() as select:
    response = select(asin(0))

# Output:
#           v
# 0  1.570796

The input to asin() must be in the range -1 to 1, inclusive. If the input is outside this range, the query or rule will be impossible to satisfy:

with model.query() as select:
    person = Person()
    response = select(, alias(asin(person.age), "asin_age"))

# Output:
# Empty DataFrame
# Columns: []
# Index: []

See Also#