5.4. 演算¶
5.4.1. 単項演算¶
- pysimple.__pos__(obj) → +obj¶
単項演算
+obj
を返します.- 戻り値
obj が funcable-type の場合は Parameter を,それ以外の場合は Expression を返します.
- 戻り値の型
- pysimple.__neg__(obj1) → -obj¶
単項演算
-obj1
を返します.- 戻り値
obj が funcable-type の場合は Parameter を,それ以外の場合は Expression を返します.
- 戻り値の型
5.4.2. 算術演算¶
- Set.__sub__(rset) Set - rset ¶
Set に含まれて rset に含まれない集合を返します.
- パラメータ
rset (iterable) -- Set や set でなくても構いません.
- 戻り値の型
サンプル
>>> I = Set(value=[1,2,3,4], name='I') >>> J = Set(value=[2,4,6,8], name='J') >>> I - J Set(name='(I-J)', value=[1, 3]) >>> I - {2,4,6,8} Set(name='(I-{8, 2, 4, 6})', value=[1, 3]) >>> I - [2,4,6,8] Set(name='(I-[2, 4, 6, 8])', value=[1, 3])
- Set.__mul__(rset) Set * rset ¶
Set と rset の直積集合を返します.
- パラメータ
rset (iterable) -- Set や set でなくても構いません.
- 戻り値の型
サンプル
>>> I = Set(value=[1,2], name='I') >>> I * I Set(name='(I*I)', dim=2, value=[(1, 1), (1, 2), (2, 1), (2, 2)]) >>> I * {3,4} Set(name='(I*{3, 4})', dim=2, value=[(1, 3), (1, 4), (2, 3), (2, 4)]) >>> I * [3,4] Set(name='(I*[3, 4])', dim=2, value=[(1, 3), (1, 4), (2, 3), (2, 4)]) >>> I * I * I Set(name='((I*I)*I)', dim=3, value=[(1, 1, 1), (1, 1, 2), (1, 2, 1), (1, 2, 2), (2, 1, 1), (2, 1, 2), (2, 2, 1), (2, 2, 2)])
- Set.__rsub__(lset) lset - Set ¶
lset に含まれて Set に含まれない集合を返します.
- パラメータ
rset (iterable) -- Set や set でなくても構いません.
- 戻り値の型
サンプル
>>> I = Set(value=[1,2,3,4], name='I') >>> {2,4,6,8} - I Set(name='({8, 2, 4, 6}-I)', value=[8, 6]) >>> [2,4,6,8] - I Set(name='([2, 4, 6, 8]-I)', value=[6, 8])
- Set.__rmul__(lset) lset * Set ¶
lset と Set の直積集合を返します.
- パラメータ
rset (iterable) -- Set や set でなくても構いません.
- 戻り値の型
サンプル
>>> I = Set(value=[1,2], name='I') >>> {3,4} * I Set(name='({3, 4}*I)', dim=2, value=[(3, 1), (3, 2), (4, 1), (4, 2)]) >>> [3,4] * I Set(name='([3, 4]*I)', dim=2, value=[(3, 1), (3, 2), (4, 1), (4, 2)])
- pysimple.__add__(obj1, obj2) → obj1 + obj2¶
二項演算
obj1+obj2
を返します.- パラメータ
obj1 (operable-type) --
obj2 (operable-type) --
- 戻り値
obj1 または obj2 が Variable, Expression の場合は Expression を, それ以外の場合は Parameter を返します.
- 戻り値の型
- pysimple.__sub__(obj1, obj2) → obj1 - obj2¶
二項演算
obj1-obj2
を返します.- パラメータ
obj1 (operable-type) --
obj2 (operable-type) --
- 戻り値
obj1 または obj2 が Variable, Expression の場合は Expression を, それ以外の場合は Parameter を返します.
- 戻り値の型
- pysimple.__mul__(obj1, obj2) → obj1 * obj2¶
二項演算
obj1*obj2
を返します.- パラメータ
obj1 (operable-type) --
obj2 (operable-type) --
- 戻り値
obj1 または obj2 が Variable, Expression の場合は Expression を, それ以外の場合は Parameter を返します. 演算結果が線形または二次でない場合,TypeError が投げられます.
- 戻り値の型
- 例外
TypeError -- high dimension operand type(s) for *: {} and {}
- pysimple.__mod__(obj1, obj2) → obj1 % obj2¶
二項演算
obj1%obj2
を返します.- パラメータ
obj1 (funcable-type) --
obj2 (funcable-type) --
- 戻り値
演算結果が線形または二次でない場合,TypeError が投げられます.
- 戻り値の型
- 例外
TypeError -- high dimension operand type(s) for %: {} and {}
- pysimple.__truediv__(obj1, obj2) → obj1 / obj2¶
二項演算
obj1/obj2
を返します.- パラメータ
obj1 (operable-type) --
obj2 (funcable-type) --
- 戻り値
obj1 が Variable, Expression の場合は Expression を, それ以外の場合は Parameter を返します. 演算結果が線形または二次でない場合,TypeError が投げられます.
- 戻り値の型
- 例外
TypeError -- high dimension operand type(s) for /: {} and {}
- pysimple.__floordiv__(obj1, obj2) → obj1 // obj2¶
二項演算
obj1//obj2
を返します.- パラメータ
obj1 (funcable-type) --
obj2 (funcable-type) --
- 戻り値
演算結果が線形または二次でない場合,TypeError が投げられます.
- 戻り値の型
- 例外
TypeError -- high dimension operand type(s) for //: {} and {}
- pysimple.__pow__(obj1, obj2) → obj1 ** obj2¶
二項演算
obj1**obj2
を返します.- パラメータ
obj1 (funcable-type) --
obj2 (funcable-type) --
- 戻り値
演算結果が線形または二次でない場合,TypeError が投げられます.
- 戻り値の型
- 例外
TypeError -- high dimension operand type(s) for **: {} and {}
- pysimple.__radd__(obj1, obj2)¶
- pysimple.__rsub__(obj1, obj2)¶
- pysimple.__rmul__(obj1, obj2)¶
- pysimple.__rmod__(obj1, obj2)¶
- pysimple.__rdiv__(obj1, obj2)¶
- pysimple.__rtruediv__(obj1, obj2)¶
- pysimple.__rfloordiv__(obj1, obj2)¶
- pysimple.__rpow__(obj1, obj2)¶
同様に定義されています.
5.4.3. 比較演算¶
- pysimple.__lt__(obj)¶
Return self<value.
- pysimple.__gt__(obj)¶
Return self>value.
- pysimple.__le__(obj)¶
Return self<=value.
- pysimple.__ge__(obj)¶
Return self>=value.
- pysimple.__eq__(obj)¶
Return self==value.
- pysimple.__ne__(obj)¶
Return self!=value.
5.4.4. ビット演算¶
- Set.__or__(rset) Set | rset ¶
Set と rset のいずれかに含まれる集合を返します.
- パラメータ
rset (iterable) -- Set や set でなくても構いません.
- 戻り値の型
サンプル
>>> I = Set(value=[1,2,3,4], name='I') >>> J = Set(value=[2,4,6,8], name='J') >>> I | J Set(name='(I|J)', value=[1, 2, 3, 4, 6, 8]) >>> I | {2,4,6,8} Set(name='(I|{8, 2, 4, 6})', value=[1, 2, 3, 4, 8, 6]) >>> I | [2,4,6,8] Set(name='(I|[2, 4, 6, 8])', value=[1, 2, 3, 4, 6, 8])
- Set.__and__(rset) Set & rset ¶
Set と rset の両方に含まれる集合を返します.
- パラメータ
rset (iterable) -- Set や set でなくても構いません.
- 戻り値の型
サンプル
>>> I = Set(value=[1,2,3,4], name='I') >>> J = Set(value=[2,4,6,8], name='J') >>> I & J Set(name='(I&J)', value=[2, 4]) >>> I & {2,4,6,8} Set(name='(I&{8, 2, 4, 6})', value=[2, 4]) >>> I & [2,4,6,8] Set(name='(I&[2, 4, 6, 8])', value=[2, 4])
- Set.__xor__(rset) Set ^ rset ¶
Set と rset のいずれか一方にだけ含まれる集合を返します.
- パラメータ
rset (iterable) -- Set や set でなくても構いません.
- 戻り値の型
サンプル
>>> I = Set(value=[1,2,3,4], name='I') >>> J = Set(value=[2,4,6,8], name='J') >>> I ^ J Set(name='(I^J)', value=[1, 3, 6, 8]) >>> I ^ {2,4,6,8} Set(name='(I^{8, 2, 4, 6})', value=[1, 3, 8, 6]) >>> I ^ [2,4,6,8] Set(name='(I^[2, 4, 6, 8])', value=[1, 3, 6, 8])
- Set.__ror__(lset) lset | Set ¶
lset と Set のいずれかに含まれる集合を返します.
- パラメータ
lset (iterable) -- Set や set でなくても構いません.
- 戻り値の型
サンプル
>>> I = Set(value=[1,2,3,4], name='I') >>> {2,4,6,8} | I Set(name='({8, 2, 4, 6}|I)', value=[1, 2, 3, 4, 8, 6]) >>> [2,4,6,8] | I Set(name='([2, 4, 6, 8]|I)', value=[1, 2, 3, 4, 6, 8])
- Set.__rand__(lset) lset & Set ¶
lset と Set の両方に含まれる集合を返します.
- パラメータ
lset (iterable) -- Set や set でなくても構いません.
- 戻り値の型
サンプル
>>> I = Set(value=[1,2,3,4], name='I') >>> {2,4,6,8} & I Set(name='({8, 2, 4, 6}&I)', value=[2, 4]) >>> [2,4,6,8] & I Set(name='([2, 4, 6, 8]&I)', value=[2, 4])
- Set.__rxor__(lset) lset ^ Set ¶
lset と Set のいずれか一方にだけ含まれる集合を返します.
- パラメータ
lset (iterable) -- Set や set でなくても構いません.
- 戻り値の型
サンプル
>>> I = Set(value=[1,2,3,4], name='I') >>> {2,4,6,8} ^ I Set(name='({8, 2, 4, 6}^I)', value=[1, 3, 8, 6]) >>> [2,4,6,8] ^ I Set(name='([2, 4, 6, 8]^I)', value=[1, 3, 6, 8])
- Cond.__or__(rcond) Cond | rcond ¶
Cond と rcond のいずれかの条件を満たす条件式を返します.
サンプル
>>> i = Element(value=[1,2,3], name='i') >>> (i<2) | (2<i) ((i<2)|(i>2))[i] in [1, 3]
注釈
「演算子の優先順位 」 により,各条件には括弧をつける必要があります.