cancel_double_expr_JPH {lazy.symbolic} | R Documentation |
重複した単項演算子(t / inv / - など)を簡約する
Description
英語のヘルプファイルは: cancel_double_expr
Arguments
expr |
入力式。クオートされた式(quoted expression)または文字列。 文字列が与えられた場合は 'parse(text = ...)' により式へ変換されます。 |
double_op |
文字ベクトル。二重適用の検出・簡約対象とする 単項演算子名の集合。既定は 'c("t", "inv", "-")'。 't(t(X)) -> X'、'inv(inv(X)) -> X'、単項マイナスは 'use_unary_reorder = TRUE' の場合に再整列を介して簡約が進む場合があります。 必要に応じて他の単項演算子名を追加可能です。 |
sym |
文字ベクトル。対称とみなす記号の集合。 ここに含まれる記号 'S' に対しては 't(S) = S' として簡約します。 既定では単位行列 'I' が含まれます('t(I) = I')。 |
use_unary_reorder |
論理値。'TRUE' の場合、'unary_reorder_expr()' を用いて 単項演算子の位置を再整列し、二重適用の検出を助けます。 例:'t(inv(t(inv(A))))' などで簡約が進みやすくなります。 |
Details
'cancel_double_expr()' は、式の構文木を走査し、同じ単項演算子が 連続して適用されている箇所(例: 't(t(X))', 'inv(inv(X))')を 代数的に同値な形へ簡約します。必要に応じて、単項演算子の再整列を行い 二重適用となっている部分を簡約します。
Value
クオートされた式(quoted expression)
Examples
modify_math_operators()
cancel_double_expr("t(t(A))")
cancel_double_expr("t(A)")
cancel_double_expr("A")
cancel_double_expr("t(t(t(A)))")
cancel_double_expr("t(t(t(A))*B)")
cancel_double_expr("t(t(t(t(A))*t(B)))")
cancel_double_expr("t(t(A))*inv(inv(t(B)))")
cancel_double_expr("inv(inv(t(B)))")
cancel_double_expr("t(I)")
cancel_double_expr("inv(I)")
cancel_double_expr("B%*%t(S)%*%inv(S)")
cancel_double_expr("B%*%t(S)%*%inv(S)", sym = "S")
cancel_double_expr("t(I)%*%B%*%t(S)%*%inv(I)")
cancel_double_expr("t(inv(t(inv(A))))", use_unary_reorder=TRUE)
cancel_double_expr("-inv(t(-(B)))", use_unary_reorder=TRUE)
[Package lazy.symbolic version 1.0.0.20250830 ]