cancel_double_expr {lazy.symbolic}R Documentation

Remove multiple consecutive t's or inv's from an expression

Description

Remove multiple consecutive t's or inv's from an expression

Usage

cancel_double_expr(
  expr,
  double_op = c("t", "inv", "-"),
  sym,
  inv,
  use_unary_reorder = FALSE
)

Arguments

expr

an expression of a string

double_op

???

sym

string vector of the variables to be assumed as symmetric

inv

???

use_unary_reorder

= TRUE to use use_unary_reorder functin

#' @note 再帰解決系

Value

an 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)", sym = "S")
cancel_double_expr("t(I)%*%B%*%t(S)%*%inv(S)", sym = "S")
cancel_double_expr("t(I)%*%B%*%t(S)%*%inv(S) * inv(I)", sym = "S")

cancel_double_expr("t(inv(t(inv(A)))) %*% -inv(t(-(B)))"
, use_unary_reorder=TRUE)
cancel_double_expr("-inv(t(-(B)))"
, use_unary_reorder=TRUE)

cancel_double_expr("-inv(t(-(B)) - A)", use_unary_reorder=TRUE)
# これ期待通りの挙動ではないので要修正
# → 修正完了


[Package lazy.symbolic version 1.0.0.20250803 ]