math#
- gamspy.math.cos(x: int | float | Symbol) Expression[source]#
Cosine of
x.- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import cos >>> import numpy as np >>> m = Container() >>> r = Parameter(m, "r") >>> r[...] = cos(np.pi) >>> r.toValue() np.float64(-1.0)
- gamspy.math.cosh(x: int | float | Symbol) Expression[source]#
Hyperbolic cosine of
x.- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import cosh >>> m = Container() >>> r = Parameter(m, "r") >>> r[...] = cosh(0) >>> r.toValue() np.float64(1.0)
- gamspy.math.sin(x: float | Symbol) Expression[source]#
Sine of
x.- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import sin >>> import numpy as np >>> m = Container() >>> r = Parameter(m, "r") >>> r[...] = sin(np.pi/2) >>> r.toValue() np.float64(1.0)
- gamspy.math.sinh(x: float | Symbol) Expression[source]#
Hyperbolic sine of
x.- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import sinh >>> m = Container() >>> r = Parameter(m, "r") >>> r[...] = sinh(0) >>> r.toValue() np.float64(0.0)
- gamspy.math.acos(x: float | Symbol) Expression[source]#
Inverse cosine of
x.- Returns:
- Expresion | float
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import acos >>> m = Container() >>> r = Parameter(m, "r") >>> r[...] = acos(1) >>> r.toValue() np.float64(0.0)
- gamspy.math.asin(x: float | Symbol) Expression[source]#
Inver sinus of
x.- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import asin >>> m = Container() >>> r = Parameter(m, "r") >>> r[...] = asin(0) >>> r.toValue() np.float64(0.0)
- gamspy.math.tan(x: float | Symbol) Expression[source]#
Tangent of
x.- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import tan >>> import numpy as np >>> m = Container() >>> r = Parameter(m, "r") >>> r[...] = tan(np.pi/4) >>> round(r.toValue(), 2) np.float64(1.0)
- gamspy.math.tanh(x: float | Symbol) Expression[source]#
Hyperbolic tangent of
x.- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import tanh >>> m = Container() >>> r = Parameter(m, "r") >>> r[...] = tanh(0) >>> r.toValue() np.float64(0.0)
- gamspy.math.atan(x: float | Symbol) Expression[source]#
Inverse tangent of
x.- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import atan >>> m = Container() >>> r = Parameter(m, "r") >>> r[...] = atan(0) >>> r.toValue() np.float64(0.0)
- gamspy.math.atan2(y: int | float | Symbol, x: int | float | Symbol) Expression[source]#
Four-quadrant arctan function yielding
arctan(y/x), which is the angle the vector(x,y)makes with(1,0)in radians.- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import atan2 >>> m = Container() >>> r = Parameter(m, "r") >>> r[...] = atan2(1,1) >>> r.toValue() np.float64(0.7853981633974483)
- gamspy.math.exp(x: float | Symbol) Expression[source]#
Exponential of
x(i.e.e^x)- Parameters:
- xfloat | Symbol
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import exp >>> m = Container() >>> a = Parameter(m, "a", records=3.8) >>> b = Parameter(m, "b") >>> b[...] = exp(a) >>> b.toValue() np.float64(44.701184493300815)
- gamspy.math.power(base: float | Symbol, exponent: float | Symbol) Expression[source]#
Base to the exponent power (i.e.
base ^ exponent)- Parameters:
- basefloat | Symbol
- exponentfloat | Symbol
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import power >>> m = Container() >>> a = Parameter(m, "a", records=3.8) >>> b = Parameter(m, "b") >>> b[...] = power(a, 3) >>> b.toValue() np.float64(54.87199999999999)
- gamspy.math.sqr(x: float | Symbol) Expression[source]#
Square of
x(i.e.x^2)- Parameters:
- xfloat | Symbol
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import sqr >>> m = Container() >>> a = Parameter(m, "a", records=4) >>> b = Parameter(m, "b") >>> b[...] = sqr(a) >>> b.toValue() np.float64(16.0)
- gamspy.math.sqrt(x: int | float | Symbol) Expression[source]#
Square root of
x- Returns:
- Expression
Examples
>>> from gamspy import Container, Set, Parameter >>> from gamspy.math import sqrt >>> m = Container() >>> i = Set(m, name="i", records=["i1", "i2", "i3"]) >>> a = Parameter(m, "a", domain=i, records=[("i1", 4), ("i2", 54), ("i3", 0)]) >>> b = Parameter(m, "b", domain=i) >>> b[i] = sqrt(a[i]) >>> b.toList() [('i1', 2.0), ('i2', 7.3484692283495345)]
- gamspy.math.log(x: int | float | Symbol) Expression[source]#
Natural logarithm of
x(i.e. logarithm baseeofx)- Parameters:
- xint | float | Symbol
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import log >>> m = Container() >>> a = Parameter(m, "a", records=3.8) >>> b = Parameter(m, "b") >>> b[...] = log(a) >>> b.toValue() np.float64(1.33500106673234)
- gamspy.math.log2(x: float | Symbol) Expression[source]#
Binary logarithm (i.e. logarithm base
2ofx)- Parameters:
- xfloat | Symbol
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import log2 >>> m = Container() >>> a = Parameter(m, "a", records=3.8) >>> b = Parameter(m, "b") >>> b[...] = log2(a) >>> b.toValue() np.float64(1.9259994185562224)
- gamspy.math.log10(x: float | Symbol) Expression[source]#
Common logarithm (i.e. logarithm base
10ofx)- Parameters:
- xfloat | Symbol
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import log10 >>> m = Container() >>> a = Parameter(m, "a", records=3.8) >>> b = Parameter(m, "b") >>> b[...] = log10(a) >>> b.toValue() np.float64(0.5797835966168101)
- gamspy.math.log_beta(x: int | float | Symbol, y: int | float | Symbol) Expression[source]#
Log beta function (i.e.
log(B(x, y))- Parameters:
- xint | float | Symbol
- yint | float | Symbol
- Returns:
- Expression
Examples
>>> import math >>> from gamspy import Container, Parameter >>> from gamspy.math import log_beta >>> m = Container() >>> a = Parameter(m, "a", records=3.8) >>> b = Parameter(m, "b") >>> b[...] = log_beta(a,5) >>> math.isclose(b.toValue(), -5.45446741772822) True
- gamspy.math.log_gamma(x: int | float | Symbol) Expression[source]#
Log gamma function of
x- Parameters:
- xint | float | Symbol
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import log_gamma >>> m = Container() >>> a = Parameter(m, "a", records=3.8) >>> b = Parameter(m, "b") >>> b[...] = log_gamma(a)
- gamspy.math.logit(x: int | float | Symbol) Expression[source]#
Logit Transformation (i.e.
log(x / (1 - x))) forxin(0, 1)- Parameters:
- xint | float | Symbol
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import logit >>> m = Container() >>> a = Parameter(m, "a", records=0.8) >>> b = Parameter(m, "b") >>> b[...] = logit(a) >>> b.toValue() np.float64(1.3862943611198908)
- gamspy.math.abs(x: int | float | Symbol) Expression[source]#
Absolute value of
x(i.e.|x|)- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import abs >>> m = Container() >>> a = Parameter(m, "a", records=-3.8) >>> b = Parameter(m, "b") >>> b[...] = abs(a) >>> b.toValue() np.float64(3.8)
- gamspy.math.ceil(x: int | float | Symbol) Expression[source]#
The smallest integer greater than or equal to
x(i.e.ceil(4.1)returns5)- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import ceil >>> m = Container() >>> a = Parameter(m, "a", records=3.2) >>> b = Parameter(m, "b") >>> b[...] = ceil(a) >>> b.toValue() np.float64(4.0)
- gamspy.math.dist(x1: int | float | Symbol, x2: int | float | Symbol) Expression[source]#
Euclidean or L-2 Norm:
sqrt(x1^2 + x2^2 + ... + xn^2)- Returns:
- Expression
- Raises:
- Exception
In case both x1 and x2 are not a tuple or none.
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import dist >>> m = Container() >>> a = Parameter(m, "a", records=210) >>> b = Parameter(m, "b") >>> b[...] = dist(a, 100)
- gamspy.math.div(dividend: int | float | Symbol, divisor: int | float | Symbol) Expression[source]#
Dividing operation, Error if the divisor is
0. To avoid the error,div0can be used instead.- Parameters:
- dividendint | float | Symbol
- divisorint | float | Symbol
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import div >>> m = Container() >>> a = Parameter(m, "a", records=210) >>> b = Parameter(m, "b") >>> b[...] = div(a, 3) >>> b.toValue() np.float64(70.0)
- gamspy.math.div0(dividend: int | float | Symbol, divisor: int | float | Symbol) Expression[source]#
Dividing operation, returns
1e+299if the divisor is0- Parameters:
- dividendint | float | Symbol
- divisorint | float | Symbol
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import div0 >>> m = Container() >>> a = Parameter(m, "a", records=210) >>> b = Parameter(m, "b") >>> b[...] = div0(a, 0) >>> b.toValue() np.float64(1e+299)
- gamspy.math.factorial(x: int) Expression[source]#
Factorial of
x:x!- Parameters:
- xint
- Returns:
- Expression
Examples
>>> from gamspy import Container, Set, Parameter >>> from gamspy.math import factorial >>> m = Container() >>> b = Parameter(m, "b") >>> b[...] = factorial(2)
- gamspy.math.floor(x: int | float | Symbol) Expression[source]#
The greatest integer less than or equal to
x(i.e.floor(4.9)returns4)- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import floor >>> m = Container() >>> a = Parameter(m, "a", records=3.9) >>> b = Parameter(m, "b") >>> b[...] = floor(a) >>> b.toValue() np.float64(3.0)
- gamspy.math.fractional(x: int | float | Symbol) Expression[source]#
Returns the fractional part of
x(i.e.fractional(3.9)returns0.9)- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import fractional >>> m = Container() >>> a = Parameter(m, "a", records=3.9) >>> b = Parameter(m, "b") >>> b[...] = fractional(a) >>> b.toValue() np.float64(0.8999999999999999)
- gamspy.math.Min(*values) Expression[source]#
Minimum value of the values, where the number of values may vary.
- Returns:
- Expression
Examples
>>> from gamspy import Container, Set, Parameter >>> from gamspy.math import Min >>> m = Container() >>> i = Set(m, name="i", records=["i1", "i2", "i3"]) >>> a = Parameter(m, "a", domain=i, records=[("i1", -2), ("i2", 0.3), ("i3", 2)]) >>> b = Parameter(m, "b", domain=i) >>> b[i] = Min(a[i], 1) >>> b.toList() [('i1', -2.0), ('i2', 0.3), ('i3', 1.0)]
- gamspy.math.Max(*values) Expression[source]#
Maximum value of the values, where the number of values may vary.
- Returns:
- Expression
Examples
>>> from gamspy import Container, Set, Parameter >>> from gamspy.math import Max >>> m = Container() >>> i = Set(m, name="i", records=["i1", "i2", "i3"]) >>> a = Parameter(m, "a", domain=i, records=[("i1", 2), ("i2", 0.3), ("i3", 2.5)]) >>> b = Parameter(m, "b", domain=i) >>> b[i] = Max(a[i], 1) >>> b.toList() [('i1', 2.0), ('i2', 1.0), ('i3', 2.5)]
- gamspy.math.mod(x: float | Symbol, y: float | Symbol) Expression[source]#
Remainder of
xdivided byy(i.e.mod(10, 3)returns1)- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import mod >>> m = Container() >>> a = Parameter(m, "a", records=200) >>> b = Parameter(m, "b") >>> b[...] = mod(a, 3) >>> b.toValue() np.float64(2.0)
- gamspy.math.Round(x: float | Symbol, num_decimals: int = 0) Expression[source]#
Round
xtonum_decimalsdecimal places (i.e.Round(3.14159, 2)returns3.14)- Parameters:
- xfloat | Symbol
- num_decimalsint, optional
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import Round, div >>> m = Container() >>> a = Parameter(m, "a", records=200) >>> b = Parameter(m, "b") >>> b[...] = Round(div(a, 3), 2) >>> b.toValue() np.float64(66.67)
- gamspy.math.sign(x: Symbol) Expression[source]#
Sign of
xreturns1 if x > 0,-1 if x < 0, and0 if x = 0- Parameters:
- xSymbol
- Returns:
- Expression
Examples
>>> from gamspy import Container, Set, Parameter >>> from gamspy.math import sign >>> m = Container() >>> i = Set(m, name="i", records=["i1", "i2", "i3"]) >>> a = Parameter(m, "a", domain=i, records=[("i1", 2), ("i2", -5.4), ("i3", 0)]) >>> b = Parameter(m, "b", domain=i) >>> b[i] = sign(a[i]) >>> b.toList() [('i1', 1.0), ('i2', -1.0)]
- gamspy.math.binomial(n: int | float | Symbol, k: int | float | Symbol) Expression[source]#
(Generalized) Binomial coefficient for
n > -1and-1 < k < n + 1- Parameters:
- nint | float | Symbol
- kint | float | Symbol
- Returns:
- Expression
Examples
>>> from gamspy import Container, Set, Parameter >>> from gamspy.math import binomial >>> m = Container() >>> i = Set(m, name="i", records=["i1", "i2", "i3"]) >>> p = Parameter(m, "p", domain=i, records=[("i1", 0.3), ("i2", 0.8), ("i3", 0.45)]) >>> b = Parameter(m, "b", domain=i) >>> b[i] = binomial(75, p[i])
- gamspy.math.centropy(x: int | float | Symbol, y: int | float | Symbol, z: float = 1e-20) Expression[source]#
Cross-entropy:
x.ln((x + z) / (y + z))forx, y > 0andz >= 0- Parameters:
- xfloat | Symbol
- yfloat | Symbol
- zfloat, optional
- Returns:
- Expression
- Raises:
- ValueError
if z is smaller than 0
Examples
>>> from gamspy import Container, Set, Parameter >>> from gamspy.math import centropy >>> m = Container() >>> i = Set(m, name="i", records=["i1", "i2", "i3"]) >>> x = Parameter(m, "x", domain=i, records=[("i1", 0.3), ("i2", 8), ("i3", 45)]) >>> b = Parameter(m, "b", domain=i) >>> b[i] = centropy(2.8, x[i]) >>> b.toList() [('i1', 6.254058220219863), ('i2', -2.939501948596297), ('i3', -7.775720603249651)]
- gamspy.math.normal(mean: int | float, dev: int | float) Expression[source]#
Generate a random number from the normal distribution with mean
meanand standard deviationdev- Parameters:
- meanint | float
- devint | float
- Returns:
- Expression
Examples
>>> from gamspy import Container, Set, Parameter >>> from gamspy.math import normal >>> m = Container() >>> i = Set(m, name="i", records=["i1", "i2", "i3"]) >>> x = Parameter(m, "x", domain=i, records=[("i1", 30), ("i2", 8), ("i3", 45)]) >>> b = Parameter(m, "b", domain=i) >>> b[i] = normal(x[i], 5) >>> b.toList() [('i1', 28.433285357057226), ('i2', 9.6383740411321), ('i3', 47.3177939118135)]
- gamspy.math.uniform(lower_bound: float | Expression, upper_bound: float | Expression) Expression[source]#
Generates a random number from the uniform distribution between
lower_boundandhigher_bound- Parameters:
- lower_boundfloat
- upper_boundfloat
- Returns:
- Expression
Examples
>>> from gamspy import Container, Set, Parameter >>> from gamspy.math import uniform >>> m = Container() >>> i = Set(m, name="i", records=["i1", "i2", "i3"]) >>> x = Parameter(m, "x", domain=i, records=[("i1", 30), ("i2", 8), ("i3", 45)]) >>> b = Parameter(m, "b", domain=i) >>> b[i] = uniform(x[i], 50) >>> b.toList() [('i1', 33.43494264), ('i2', 43.417201736), ('i3', 47.75187678)]
- gamspy.math.uniformInt(lower_bound: int | float, upper_bound: int | float) Expression[source]#
Generates an integer random number from the discrete uniform distribution whose outcomes are the integers between
lower_boundandhigher_bound- Parameters:
- lower_boundint | float
- upper_boundint | float
- Returns:
- Expression
Examples
>>> from gamspy import Container, Set, Parameter >>> from gamspy.math import uniformInt >>> m = Container() >>> i = Set(m, name="i", records=["i1", "i2", "i3"]) >>> x = Parameter(m, "x", domain=i, records=[("i1", 30), ("i2", 8), ("i3", 45)]) >>> b = Parameter(m, "b", domain=i) >>> b[i] = uniformInt(x[i], 50) >>> b.toList() [('i1', 33.0), ('i2', 44.0), ('i3', 48.0)]
- gamspy.math.cv_power(base: float, exponent: float | Symbol) Expression[source]#
Real power (i.e.
base ^ exponentwherebase >= 0; error forbase < 0)- Parameters:
- basefloat
- exponentfloat | Symbol
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import cv_power >>> m = Container() >>> a = Parameter(m, "a", records=4) >>> b = Parameter(m, "b") >>> b[...] = cv_power(3, a)
- gamspy.math.rpower(base: float | Symbol, exponent: float | Symbol)[source]#
Returns
x^yforx > 0and also forx = 0and restricted values ofy(Error ifx < 0)- Parameters:
- basefloat | Symbol
- exponentfloat | Symbol
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter, Set >>> from gamspy.math import rpower >>> m = Container() >>> i = Set(m, name="i", records=["i1", "i2"]) >>> a = Parameter(m, "a", domain=i, records=[("i1", 3.8)]) >>> b = Parameter(m, "b", domain=i) >>> b[i] = rpower(a[i], 3) >>> b.toList() [('i1', 54.87199999999999)]
- gamspy.math.sign_power(base: float | Symbol, exponent: float)[source]#
Signed power:
sign(base) * |base|^exponent, forexponent > 0- Parameters:
- basefloat | Symbol
- exponentfloat
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter, Set >>> from gamspy.math import sign_power >>> m = Container() >>> i = Set(m, name="i", records=["i1", "i2"]) >>> a = Parameter(m, "a", domain=i, records=[("i1", 3.8)]) >>> b = Parameter(m, "b", domain=i) >>> b[i] = sign_power(a[i], 5) >>> b.toList() [('i1', 792.3516799999994)]
- gamspy.math.sllog10(x: int | float | Symbol, S: int | float = 1e-150) Expression[source]#
Smooth (linear) logarithm base 10
- Parameters:
- xint | float | Symbol
- Sint | float, by default 1.0e-150
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import sllog10 >>> m = Container() >>> a = Parameter(m, "a", records=3.8) >>> b = Parameter(m, "b") >>> b[...] = sllog10(a) >>> b.toValue() np.float64(0.5797835966168101)
- gamspy.math.sqlog10(x: int | float | Symbol, S: int | float = 1e-150) Expression[source]#
Smooth (quadratic) logarithm base 10
- Parameters:
- xint | float | Symbol
- Sint | float, by default 1.0e-150
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import sqlog10 >>> m = Container() >>> a = Parameter(m, "a", records=3.8) >>> b = Parameter(m, "b") >>> b[...] = sqlog10(a) >>> b.toValue() np.float64(0.5797835966168101)
- gamspy.math.vc_power(base: float | Symbol, exponent: float | Symbol)[source]#
Returns
x^yforx >= 0(error forx < 0)- Parameters:
- basefloat | Symbol
- exponentfloat | Symbol
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import vc_power >>> m = Container() >>> a = Parameter(m, "a", records=4) >>> b = Parameter(m, "b") >>> b[...] = vc_power(a, 3)
- gamspy.math.slexp(x: int | float | Symbol, S: int | float = 150) Expression[source]#
Smooth (linear) exponential where
S <= 150. (DefaultS = 150)- Parameters:
- xint | float | Symbol
- Sint | float, by default 150
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import slexp >>> m = Container() >>> a = Parameter(m, "a", records=3) >>> b = Parameter(m, "b") >>> b[...] = slexp(a) >>> b.toValue() np.float64(20.085536923187668)
- gamspy.math.sqexp(x: int | float | Symbol, S: int | float = 150) Expression[source]#
Smooth (quadratic) exponential where
S <= 150. (DefaultS = 150)- Parameters:
- xint | float | Symbol
- Sint | float, by default 150
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import sqexp >>> m = Container() >>> a = Parameter(m, "a", records=3) >>> b = Parameter(m, "b") >>> b[...] = sqexp(a) >>> b.toValue() np.float64(20.085536923187668)
- gamspy.math.truncate(x: int | float | Symbol) Expression[source]#
Returns the integer part of
x(i.e.truncate(3.9)returns3)- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import truncate >>> m = Container() >>> a = Parameter(m, "a", records=3.9) >>> b = Parameter(m, "b") >>> b[...] = truncate(a) >>> b.toValue() np.float64(3.0)
- gamspy.math.ifthen(condition: Expression, yes_return: float | Expression, no_return: float | Expression) Expression[source]#
If the logical condition is
true, the function returnsyes_return, else it returnsno_return- Parameters:
- conditionExpression
- yes_returnfloat | Expression
- no_returnfloat | Expression
- Returns:
- Expression
Examples
>>> from gamspy.math import ifthen >>> import gamspy as gp >>> m = gp.Container() >>> tt = gp.Parameter(m, "tt", records=2) >>> y = gp.Parameter(m, "y", records=2) >>> x = ifthen(tt == 2, 3, 4 + y)
- gamspy.math.beta(x: int | float | Symbol, y: int | float | Symbol) Expression[source]#
Beta function:
B(x, y) = gamma(x) * gamma(y) / gamma(x + y) = (x-1)! * (y-1)! / (x + y - 1)!- Parameters:
- xint | float | Symbol
- yint | float | Symbol
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import beta >>> m = Container() >>> a = Parameter(m, "a", records=3) >>> b = Parameter(m, "b") >>> b[...] = beta(a, 1) >>> b.toValue() np.float64(0.3333333333333333)
- gamspy.math.regularized_beta(x: int | float, y: int | float, z: int | float) Expression[source]#
Regularized Beta Function, See MathWorld
- Parameters:
- xint | float
- yint | float
- zint | float
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import regularized_beta >>> m = Container() >>> a = Parameter(m, "a", records=3) >>> b = Parameter(m, "b") >>> b[...] = regularized_beta(0.5, a, 1) >>> b.toValue() np.float64(0.12500000000000003)
- gamspy.math.gamma(x: int | float | Symbol) Expression[source]#
Gamma function:
gamma(x) = (x-1)!- Parameters:
- xint | float
- Returns:
- Expression
Examples
>>> from gamspy import Container, Set, Parameter >>> from gamspy.math import gamma >>> m = Container() >>> i = Set(m, name="i", records=["i1", "i2", "i3"]) >>> a = Parameter(m, "a", domain=i, records=[("i1", 4), ("i2", 7), ("i3", 0.5)]) >>> b = Parameter(m, "b", domain=i) >>> b[i] = gamma(a[i]) >>> b.toList() [('i1', 6.0), ('i2', 720.0), ('i3', 1.772453850905516)]
- gamspy.math.regularized_gamma(x: int | float, a: int | float) Expression[source]#
Lower Incomplete Regularized Gamma function, See MathWorld
- Parameters:
- xint | float
- aint | float
- Returns:
- Expression
Examples
>>> from gamspy import Container, Set, Parameter >>> from gamspy.math import regularized_gamma >>> m = Container() >>> i = Set(m, name="i", records=["i1", "i2", "i3"]) >>> a = Parameter(m, "a", domain=i, records=[("i1", 4), ("i2", 1), ("i3", 0.5)]) >>> b = Parameter(m, "b", domain=i) >>> b[i] = regularized_gamma(0.5, a[i]) >>> b.toList() [('i1', 0.001751622556290824), ('i2', 0.3934693402873665), ('i3', 0.6826894921370857)]
- gamspy.math.entropy(x: int | float | Symbol) Expression[source]#
Entropy function:
-x*ln(x)wherex >= 0- Parameters:
- xint | float | Symbol
- Returns:
- Expression
Examples
>>> from gamspy import Container, Set, Parameter >>> from gamspy.math import entropy >>> m = Container() >>> i = Set(m, name="i", records=["i1", "i2", "i3"]) >>> a = Parameter(m, "a", domain=i, records=[("i1", 1), ("i2", 0.8), ("i3", 15)]) >>> b = Parameter(m, "b", domain=i) >>> b[i] = entropy(a[i]) >>> b.toList() [('i2', 0.17851484105136778), ('i3', -40.62075301653315)]
- gamspy.math.lse_max(*xs) Expression[source]#
Smoothed Max via the Logarithm of the Sum of Exponentials:
ln(exp(x1) + exp(x2) + ... + exp(xn))- Returns:
- Expression
Examples
>>> from gamspy import Container, Set, Parameter >>> from gamspy.math import lse_max >>> m = Container() >>> i = Set(m, name="i", records=["i1", "i2", "i3"]) >>> a = Parameter(m, "a", domain=i, records=[("i1", 4), ("i2", 10), ("i3", 0.5)]) >>> b = Parameter(m, "b", domain=i) >>> b[i] = lse_max(a[i], 5) >>> b.toList() [('i1', 5.313261687518223), ('i2', 10.006715348489118), ('i3', 5.011047744848594)]
- gamspy.math.lse_max_sc(t, *xs) Expression[source]#
Scaled smoothed Max via the Logarithm of the Sum of Exponentials:
lse_max_sc(T,x) = lse_max(Tx)/T- Returns:
- Expression
Examples
>>> from gamspy import Container, Set, Parameter >>> from gamspy.math import lse_max_sc >>> m = Container() >>> i = Set(m, name="i", records=["i1", "i2", "i3"]) >>> a = Parameter(m, "a", domain=i, records=[("i1", 4), ("i2", 100), ("i3", 0.5)]) >>> b = Parameter(m, "b", domain=i) >>> b[i] = lse_max_sc(7.5, a[i], 10.5) >>> b.toList() [('i1', 10.50000153604837), ('i2', 10.5), ('i3', 10.902826555965506)]
- gamspy.math.lse_min(*xs) Expression[source]#
Smoothed Min via the Logarithm of the Sum of Exponentials:
-ln(exp(-x1) + exp(-x2) + ... + exp(-xn))- Returns:
- Expression
Examples
>>> from gamspy import Container, Set, Parameter >>> from gamspy.math import lse_min >>> m = Container() >>> i = Set(m, name="i", records=["i1", "i2", "i3"]) >>> a = Parameter(m, "a", domain=i, records=[("i1", 4), ("i2", 10), ("i3", 0.5)]) >>> b = Parameter(m, "b", domain=i) >>> b[i] = lse_min(a[i], 5) >>> b.toList() [('i1', 3.686738312481777), ('i2', 4.993284651510882), ('i3', 0.4889522551514062)]
- gamspy.math.lse_min_sc(t, *xs) Expression[source]#
Scaled smoothed Min via the Logarithm of the Sum of Exponentials:
lse_min_sc(T,x) = lse_min(Tx)/T- Returns:
- Expression
Examples
>>> from gamspy import Container, Set, Parameter >>> from gamspy.math import lse_min_sc >>> m = Container() >>> i = Set(m, name="i", records=["i1", "i2", "i3"]) >>> a = Parameter(m, "a", domain=i, records=[("i1", 4), ("i2", 100), ("i3", 0.5)]) >>> b = Parameter(m, "b", domain=i) >>> b[i] = lse_min_sc(7.5, a[i], 10.5) >>> b.toList() [('i1', 4.0), ('i2', 10.5), ('i3', 0.5)]
- gamspy.math.ncp_cm(x: Symbol, y: Symbol, z: float | int) Expression[source]#
Chen-Mangasarian smoothing:
x - z*ln(1 + exp((x-y)/z))- Parameters:
- xSymbol
- ySymbol
- zint | float
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import ncp_cm >>> m = Container() >>> y = Parameter(m, "y", records=2) >>> b = Parameter(m, "b") >>> b[...] = ncp_cm(1, y, 0.5) >>> b.toValue() np.float64(0.9365359944785137)
- gamspy.math.ncp_f(x: Symbol, y: Symbol, z: int | float = 0) Expression[source]#
Fisher-Burmeister smoothing:
sqrt(x^2 + y^2 + 2z) - x - ywherez >= 0(defaultz = 0)- Parameters:
- xSymbol
- ySymbol
- zint | float, optional
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import ncp_f >>> m = Container() >>> y = Parameter(m, "y", records=2) >>> b = Parameter(m, "b") >>> b[...] = ncp_f(1, y, 0.5) >>> b.toValue() np.float64(-0.5505102572168221)
- gamspy.math.ncpVUpow(r: Symbol, s: Symbol, mu: int | float = 0) Expression[source]#
NCP Veelken-Ulbrich (smoothed min(r,s))
- Parameters:
- rSymbol
- sSymbol
- muint | float, optional
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import ncpVUpow >>> m = Container() >>> y = Parameter(m, "y", records=2) >>> b = Parameter(m, "b") >>> b[...] = ncpVUpow(1, y, 0.5) >>> b.toValue() np.float64(1.0)
- gamspy.math.ncpVUsin(r: Symbol, s: Symbol, mu: int | float = 0) Expression[source]#
NCP Veelken-Ulbrich (smoothed min(r,s))
- Parameters:
- rSymbol
- sSymbol
- muint | float, optional
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import ncpVUsin >>> m = Container() >>> y = Parameter(m, "y", records=2) >>> b = Parameter(m, "b") >>> b[...] = ncpVUsin(1, y, 0.5) >>> b.toValue() np.float64(1.0)
- gamspy.math.poly(x, *args) Expression[source]#
Polynomial function:
p(x) = A[0] + A[1]*x + A[2]*x^2 + ... + A[n-1]*x^(n-1)- Returns:
- Expression
Examples
>>> from gamspy import Container, Set, Parameter >>> from gamspy.math import poly >>> m = Container() >>> i = Set(m, name="i", records=["i1", "i2", "i3"]) >>> a = Parameter(m, "a", domain=i, records=[("i1", 4), ("i2", 10), ("i3", 0.5)]) >>> b = Parameter(m, "b", domain=i) >>> b[i] = poly(a[i], 15, 3, 4) >>> b.toList() [('i1', 91.0), ('i2', 445.0), ('i3', 17.5)]
- gamspy.math.rand_binomial(n: int | float, p: int | float) Expression[source]#
Generate a random number from the binomial distribution, where n is the number of trials and p the probability of success for each trial
- Parameters:
- nint | float
- pint | float
- Returns:
- Expression
Examples
>>> from gamspy import Container, Set, Parameter >>> from gamspy.math import rand_binomial >>> m = Container() >>> i = Set(m, name="i", records=["i1", "i2", "i3"]) >>> p = Parameter(m, "p", domain=i, records=[("i1", 0.3), ("i2", 0.8), ("i3", 0.45)]) >>> b = Parameter(m, "b", domain=i) >>> b[i] = rand_binomial(75, p[i]) >>> b.toList() [('i1', 21.0), ('i2', 63.0), ('i3', 25.0)]
- gamspy.math.rand_linear(low: int | float, slope: int | float, high: int | float) Expression[source]#
Generate a random number between low and high with linear distribution.
slopemust be less than2 / (high - low)and greater than0- Parameters:
- lowint | float
- slopeint | float
- highint | float
- Returns:
- Expression
Examples
>>> from gamspy import Container, Set, Parameter >>> from gamspy.math import rand_linear >>> m = Container() >>> i = Set(m, name="i", records=["i1", "i2", "i3"]) >>> s = Parameter(m, "s", domain=i, records=[("i1", 0.03), ("i2", 0.008), ("i3", 0.04)]) >>> b = Parameter(m, "b", domain=i) >>> b[i] = rand_linear(75, s[i], 125) >>> b.toList() [('i1', 78.22119203430918), ('i2', 87.65662570307367), ('i3', 80.24583337516547)]
- gamspy.math.rand_triangle(low: int | float, mid: int | float, high: int | float) Expression[source]#
Generate a random number between
lowandhighwith triangular distribution.midis the most probable number.- Parameters:
- lowint | float
- midint | float
- highint | float
- Returns:
- Expression
Examples
>>> from gamspy import Container, Set, Parameter >>> from gamspy.math import rand_triangle >>> m = Container() >>> i = Set(m, name="i", records=["i1", "i2", "i3"]) >>> s = Parameter(m, "s", domain=i, records=[("i1", 103), ("i2", 80), ("i3", 115)]) >>> b = Parameter(m, "b", domain=i) >>> b[i] = rand_triangle(75, s[i], 125) >>> b.toList() [('i1', 90.50632080153123), ('i2', 106.22102486822031), ('i3', 108.17756338250294)]
- gamspy.math.slrec(x: int | float | Symbol, S: int | float = 1e-10) Expression[source]#
Smooth (linear) reciprocal, where
S >= 1e-10. (DefaultS = 1e-10)- Parameters:
- xint | float | Symbol
- Sint | float, by default 1e-10
- Returns:
- Expression
Examples
>>> from gamspy import Container, Set, Parameter >>> from gamspy.math import slrec >>> m = Container() >>> i = Set(m, name="i", records=["i1", "i2", "i3"]) >>> a = Parameter(m, "a", domain=i, records=[("i1", 1), ("i2", 0.8), ("i3", 15)]) >>> b = Parameter(m, "b", domain=i) >>> b[i] = slrec(a[i]) >>> b.toList() [('i1', 1.0), ('i2', 1.25), ('i3', 0.06666666666666667)]
- gamspy.math.sqrec(x: int | float | Symbol, S: int | float = 1e-10) Expression[source]#
Smooth (quadratic) reciprocal, where
S >= 1e-10. (DefaultS = 1e-10)- Parameters:
- xint | float | Symbol
- Sint | float, by default 1e-10
- Returns:
- Expression
Examples
>>> from gamspy import Container, Set, Parameter >>> from gamspy.math import sqrec >>> m = Container() >>> i = Set(m, name="i", records=["i1", "i2", "i3"]) >>> a = Parameter(m, "a", domain=i, records=[("i1", 1), ("i2", 0.8), ("i3", 15)]) >>> b = Parameter(m, "b", domain=i) >>> b[i] = sqrec(a[i]) >>> b.toList() [('i1', 1.0), ('i2', 1.25), ('i3', 0.06666666666666667)]
- gamspy.math.errorf(x: int | float | Symbol) Expression[source]#
Integral of the standard normal distribution from negative infinity to
x- Parameters:
- xint, float, Symbol
- Returns:
- Expression
Examples
>>> from gamspy import Container, Set, Parameter >>> from gamspy.math import errorf >>> m = Container() >>> i = Set(m, name="i", records=["i1", "i2", "i3"]) >>> a = Parameter(m, "a", domain=i, records=[("i1", -2.5), ("i2", 0.8), ("i3", 1.7)]) >>> b = Parameter(m, "b", domain=i) >>> b[i] = errorf(a[i]) >>> b.toList() [('i1', 0.0062096653257761375), ('i2', 0.7881446014166034), ('i3', 0.955434537241457)]
- gamspy.math.same_as(self: Set | Alias, other: Set | Alias | str) Expression[source]#
Evaluates to true if this set is identical to the given set or alias, false otherwise.
- Parameters:
- otherSet | Alias
- Returns:
- Expression
Examples
>>> import gamspy as gp >>> from gamspy.math import same_as >>> m = gp.Container() >>> i = gp.Set(m, name="i", records=["seattle", "san-diego"]) >>> j = gp.Set(m, name="j", records=["new-york", "seattle"]) >>> attr = gp.Parameter(m, "attr", domain = [i, j]) >>> attr[i,j] = same_as(i, j) >>> attr.records.values.tolist() [['seattle', 'seattle', 1.0]]
- gamspy.math.sigmoid(x: int | float | Symbol) Expression[source]#
Sigmoid of
x(i.e.1 / (1 + exp(-x)))- Parameters:
- xint | float | Symbol
- Returns:
- Expression
Examples
>>> from gamspy import Container, Set, Parameter >>> from gamspy.math import sigmoid >>> m = Container() >>> i = Set(m, name="i", records=["i1", "i2", "i3"]) >>> a = Parameter(m, "a", domain=i, records=[("i1", 4), ("i2", -1), ("i3", 0.5)]) >>> b = Parameter(m, "b", domain=i) >>> b[i] = sigmoid(a[i]) >>> b.toList() [('i1', 0.9820137900379085), ('i2', 0.2689414213699951), ('i3', 0.6224593312018546)]
- gamspy.math.bool_and(x: int | float | Symbol, y: int | float | Symbol) Expression[source]#
Returns
trueiff bothx and yare true- Parameters:
- xint | float | Symbol
- yint | float | Symbol
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import bool_and >>> m = Container() >>> a = Parameter(m, "a", records=12) >>> b = Parameter(m, "b", records=7) >>> c = Parameter(m, "c") >>> c[...] = bool_and(a > 10, b < 5) >>> c.toValue() np.float64(0.0)
- gamspy.math.bool_eqv(x: int | float | Symbol, y: int | float | Symbol) Expression[source]#
Returns
falseiff exactly one argument is false- Parameters:
- xint | float | Symbol
- yint | float | Symbol
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import bool_eqv >>> m = Container() >>> a = Parameter(m, "a", records=12) >>> b = Parameter(m, "b", records=7) >>> c = Parameter(m, "c") >>> c[...] = bool_eqv(a > 10, b < 5) >>> c.toValue() np.float64(0.0)
- gamspy.math.bool_imp(x: int | float | Symbol, y: int | float | Symbol) Expression[source]#
Returns
trueiffx is falseory is true- Parameters:
- xint | float | Symbol
- yint | float | Symbol
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import bool_imp >>> m = Container() >>> a = Parameter(m, "a", records=12) >>> b = Parameter(m, "b", records=7) >>> c = Parameter(m, "c") >>> c[...] = bool_imp(a < 10, b > 5) >>> c.toValue() np.float64(1.0)
- gamspy.math.bool_not(x: int | float | Symbol) Expression[source]#
Returns
trueiffx is false- Parameters:
- xint | float | Symbol
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import bool_not >>> m = Container() >>> a = Parameter(m, "a", records=12) >>> b = Parameter(m, "b", records=7) >>> c = Parameter(m, "c") >>> c[...] = bool_not(a > 10) >>> c.toValue() np.float64(0.0)
- gamspy.math.bool_or(x: int | float | Symbol, y: int | float | Symbol) Expression[source]#
Returns
trueiffx is trueory is true- Parameters:
- xint | float | Symbol
- yint | float | Symbol
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import bool_or >>> m = Container() >>> a = Parameter(m, "a", records=12) >>> b = Parameter(m, "b", records=7) >>> c = Parameter(m, "c") >>> c[...] = bool_or(a > 15, b < 5) >>> c.toValue() np.float64(0.0)
- gamspy.math.bool_xor(x: int | float | Symbol, y: int | float | Symbol) Expression[source]#
Returns
trueiff exactly one argument isfalse- Parameters:
- xint | float | Symbol
- yint | float | Symbol
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import bool_xor >>> m = Container() >>> a = Parameter(m, "a", records=12) >>> b = Parameter(m, "b", records=7) >>> c = Parameter(m, "c") >>> c[...] = bool_xor(a < 15, b > 5) >>> c.toValue() np.float64(0.0)
- gamspy.math.rel_eq(x: int | float | Symbol, y: int | float | Symbol) Expression[source]#
Returns
trueiffx == y- Parameters:
- xint | float | Symbol
- yint | float | Symbol
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import rel_eq >>> m = Container() >>> a = Parameter(m, "a", records=12) >>> b = Parameter(m, "b", records=7) >>> c = Parameter(m, "c") >>> c[...] = rel_eq(a, b) >>> c.toValue() np.float64(0.0)
- gamspy.math.rel_ge(x: int | float | Symbol, y: int | float | Symbol) Expression[source]#
Returns
trueiffx >= y- Parameters:
- xint | float | Symbol
- yint | float | Symbol
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import rel_ge >>> m = Container() >>> a = Parameter(m, "a", records=12) >>> b = Parameter(m, "b", records=7) >>> c = Parameter(m, "c") >>> c[...] = rel_ge(a, b) >>> c.toValue() np.float64(1.0)
- gamspy.math.rel_gt(x: int | float | Symbol, y: int | float | Symbol) Expression[source]#
Returns
trueiffx > y- Parameters:
- xint | float | Symbol
- yint | float | Symbol
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import rel_gt >>> m = Container() >>> a = Parameter(m, "a", records=7) >>> b = Parameter(m, "b", records=7) >>> c = Parameter(m, "c") >>> c[...] = rel_gt(a, b) >>> c.toValue() np.float64(0.0)
- gamspy.math.rel_le(x: int | float | Symbol, y: int | float | Symbol) Expression[source]#
Returns
trueiffx <= y- Parameters:
- xint | float | Symbol
- yint | float | Symbol
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import rel_le >>> m = Container() >>> a = Parameter(m, "a", records=12) >>> b = Parameter(m, "b", records=11) >>> c = Parameter(m, "c") >>> c[...] = rel_le(a, b) >>> c.toValue() np.float64(0.0)
- gamspy.math.rel_lt(x: int | float | Symbol, y: int | float | Symbol) Expression[source]#
Returns
trueiffx < y- Parameters:
- xint | float | Symbol
- yint | float | Symbol
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import rel_lt >>> m = Container() >>> a = Parameter(m, "a", records=12) >>> b = Parameter(m, "b", records=17) >>> c = Parameter(m, "c") >>> c[...] = rel_lt(a, b) >>> c.toValue() np.float64(1.0)
- gamspy.math.rel_ne(x: int | float | Symbol, y: int | float | Symbol) Expression[source]#
Returns
trueiffx != y- Parameters:
- xint | float | Symbol
- yint | float | Symbol
- Returns:
- Expression
Examples
>>> from gamspy import Container, Parameter >>> from gamspy.math import rel_ne >>> m = Container() >>> a = Parameter(m, "a", records=12) >>> b = Parameter(m, "b", records=12) >>> c = Parameter(m, "c") >>> c[...] = rel_ne(a, b) >>> c.toValue() np.float64(0.0)