TSL语言基础 > 高级语言(新一代) > 复数 > 复数运算

复数支持的算符列表    

  • 运算符 运算 运算对象 结果 举例
    + 复数、复数Array、 复数FMArray 支持与实数混合运算 复数、复数Array、 复数FMArray 1+2j+(2+3j)结果为3.0+5.0j
    - 减,负号 同上 同上 2+3j-(3+1j)结果为-1.0+2.0j
    * 同上 同上 (2+3j)*(3+1j)结果为3.0+11.0j
    / 同上 同上 (2+3j)/(3+1j)结果为0.9+0.7j
    \ 左除 同上 同上 (3+1j)\(2+3j)结果为0.9+0.7j
    ~ 求对数 同上 同上 (8.0+6.0j)~(3+1j)结果为2.0+0.0j
    ^ 求幂 同上 同上 (3+1j)^2结果为8.0+6.0j
    求倒数 一元运算符 单个值时求倒数,对矩阵时则是求矩阵逆 同上 !(3+1j)结果为0.3-0.1j
    ++ 加1 一元运算符 同上 (a:=(3+1j),a++,a)结果为4.0+1.0j
    -- 减1 一元运算符 同上 (a:=(3+1j),a--,a)结果为2.0+1.0j
    = 等于 复数、复数Array、 复数FMArray 支持与实数混合运算 布尔类型 (0+2j)=2j 结果为真
    <> 不等 同上 布尔类型 (0+2j)<>2j结果为假
    $ 字符串转换与拼接 复数、其它任意类型 字符串 (3+2j)$"A"结果为"3+2jA"
    Like 相似判定 复数、复数Array、 复数FMArray 支持与实数混合运算 布尔类型、布尔矩阵 3.55+4.16j like 3.55 结果为假
    赋值等于运算符
    += 加等于 复数、 复数Array、 复数FMArray 支持与实数混合运算 复数、 复数Array、 复数FMArray (a:=(3+1j),a+=(2+3j),a)结果为5.0+4.0j
    -= 减等于 同上 同上 (a:=(3+1j),a-=(2+3j),a)结果为1.0-2.0j
    *= 乘等于 同上 同上 (a:=(3+1j),a*=(2+3j),a)结果为3.0+11.0j
    /= 除等于 同上 同上 (a:=(2+3j),a/=(3+1j),a)结果为0.9+0.7j
    \= 左除等于 同上 同上 (a:=(3+1j),a\=(2+3j),a)结果为0.9+0.7j
    ^= 幂等于 同上 同上 (a:=(3+1j),a^=2,a)结果为8.0+6.0j
    ~= 对数等于 同上 同上 (a:=(8+6j),a~=(3+1j),a)结果为2.0+0.0j
    矩阵运算符
    :* 矩阵乘法 复数矩阵、 复数FMArray矩阵、支持与实数矩阵混合运算 复数Array、 复数FMArray 矩阵行列: n×m :* m×g =n×g a:=array((-1+1j),(-3+1j)); b:=array((2+2j,1+3j)); return a:*b; 结果为:array( (-4.0+0.0j,-4.0-2.0j), (-8.0-4.0j,-6.0-8.0j))
    :/ 矩阵除法 同上 复数矩阵(Array、 FMArray) 矩阵行列: n×m :/ g×m=n×g a:=complex(rand(3,4),rand(3,4)); b:=complex(rand(5,4),rand(5,4)); return a:/b;
    :\ 矩阵左除 同上 复数矩阵(Array、 FMArray) 矩阵行列: n×m :/ n×g=m×g a:=complex(rand(4,3),rand(4,3)); b:=complex(rand(4,5),rand(4,5)); return a:\b;
    :^ 矩阵乘方 同上 复数Array、 复数FMArray 例如A:^3等于A:*A:*A,乘方应该是个方阵
    :: 矩阵遍历 复数Array、复数FMArray、支持与实数数组混合运算 不改变原矩阵 a:=array((1+2j,2),(0,4+2j)); r:=0; a::r+=ifcomplex(mcell); return r;
    ::= 矩阵遍历并赋值 同上 对原矩阵进行重新赋值 a:=array((1+2j,2),(0,4+2j)); a::=ifcomplex(mcell); return a;
    .= 矩阵等于 同上 与操作的矩阵结构相同,元素值为布尔值 a:=array((1+2j,2),(0,4+2j)); return a.=4+2j;
    .<> 矩阵不等于 同上 同上 a:=array((1+2j,2),(0,4+2j)); return a.<>4+2j;
    矩阵赋值运算
    :*= 矩阵乘等于 复数矩阵、 复数FMArray矩阵、支持与实数矩阵混合运算 复数矩阵(Array、FMArray) 矩阵行列: n×m :* m×g =n×g a:=array((-1+1j),(-3+1j)); b:=array((2+2j,1+3j)); a:*=b; return a; 结果为:array( (-4.0+0.0j,-4.0-2.0j), (-8.0-4.0j,-6.0-8.0j))
    :/= 矩阵除等于 同上 复数矩阵(Array、FMArray) 矩阵行列: n×m :/ g×m=n×g a:=complex(rand(3,4),rand(3,4)); b:=complex(rand(5,4),rand(5,4)); a:/=b; return a;
    :\= 矩阵左除等于 同上 复数矩阵(Array、FMArray) 矩阵行列: n×m :/ n×g=m×g a:=complex(rand(4,3),rand(4,3)); b:=complex(rand(4,5),rand(4,5)); a:\=b; return a;
    :^= 矩阵乘方等于 同上 复数Array、 复数FMArray a:=complex(rand(3,3),rand(3,3)); a:^=2 return a;
    集合运算
    | 矩阵右并 复数Array、复数FMArray、支持与实数数组混合运算 复数Array、 复数FMArray a:=complex(ones(2,2),ones(2,2)); b:=complex(zeros(3,2),zeros(3,2)); return a|b;
    :| 非完全矩阵右并 同上 复数Array、 复数FMArray a:=complex(ones(2,2),ones(2,2)); b:=complex(zeros(3,2),zeros(3,2)); return a:|b;
    Union 集合并集 同上 复数Array、 复数FMArray a:=complex(ones(2,2),ones(2,2)); b:=complex(zeros(3,2),zeros(3,2)); return a union b;
    Union2 集合并集,有去重效果 同上 同上 a:=complex(ones(2,2),ones(2,2)); b:=complex(zeros(3,2),zeros(3,2)); return a union2 b;
    Intersect 集合交集 同上 同上 a:=array(2+3j,3,2,1+2j); b:=array(1+2j,2,0,4+2j); return a intersect b;
    Outersect 集合对称差集 同上 同上 a:=array(2+3j,3,2,1+2j); b:=array(1+2j,2,0,4+2j); return a Outersect b;
    Minus 集合差集 同上 同上 a:=array(2+3j,3,2,1+2j); b:=array(1+2j,2,0,4+2j); return a Minus b;
    In 存在于判定,以最小的元素进行判断 复数Array、复数FMArray、支持与实数数组混合运算 布尔类型 a:=4+2j; b:=array((1+2j,2),(0,4+2j)); return a in b;
    sqlin 存在于判定,以行进行判断 同上 同上 a:=array(0,4+2j); b:=array((1+2j,2),(0,4+2j)); return a sqlin b;
    集合赋值运算
    |= 右并等于 复数Array、复数FMArray、支持与实数数组混合运算 复数Array、 复数FMArray a:=complex(ones(2,2),ones(2,2)); b:=complex(zeros(3,2),zeros(3,2)); a|=b; return a;
    :|= 非完全矩阵右并等于 同上 同上 a:=complex(ones(2,2),ones(2,2)); b:=complex(zeros(3,2),zeros(3,2)); a:|=b; return a;
    &= 集合合并等于 同上 同上 a:=complex(ones(2,2),ones(2,2)); b:=complex(zeros(3,2),zeros(3,2)); a&=b; return a;
    Union2= 集合合并等于,并去重 同上 同上 a:=complex(ones(2,2),ones(2,2)); b:=complex(zeros(3,2),zeros(3,2)); a union2=b; return a;
    Intersect= 集合交集等于 同上 同上 a:=array(2+3j,3,2,1+2j); b:=array(1+2j,2,0,4+2j); a Intersect=b; return a;
    Outersect= 集合对称差集等于 同上 同上 a:=array(2+3j,3,2,1+2j); b:=array(1+2j,2,0,4+2j); a Outersect=b; return a;
    Minus= 集合差集等于 同上 同上 a:=array(2+3j,3,2,1+2j); b:=array(1+2j,2,0,4+2j); a Minus=b; return a;