@@ -14,14 +14,14 @@ Base.:+(FO1::FunOp, FO2::FunOp) = begin
1414 FunctionOperatorComposite (FO1, FO2, :+ )
1515end
1616
17- Base.:+ (FO1 :: FunOp , S:: LinearAlgebra.UniformScaling ) = begin
18- assertAddDimScaling (FO1 , S)
19- FunctionOperatorComposite (FO1 , createScalingForAddSub (FO1 , S), :+ )
17+ Base.:+ (FO :: FunOp , S:: LinearAlgebra.UniformScaling ) = begin
18+ assertAddDimScaling (FO , S)
19+ FunctionOperatorComposite (FO , createScalingForAddSub (FO , S), :+ )
2020end
2121
22- Base.:+ (S:: LinearAlgebra.UniformScaling , FO2 :: FunOp ) = begin
23- assertAddDimScaling (FO2 , S)
24- FunctionOperatorComposite (createScalingForAddSub (FO2 , S), FO2 , :+ )
22+ Base.:+ (S:: LinearAlgebra.UniformScaling , FO :: FunOp ) = begin
23+ assertAddDimScaling (FO , S)
24+ FunctionOperatorComposite (createScalingForAddSub (FO , S), FO , :+ )
2525end
2626
2727Base.:- (FO1:: FunOp , FO2:: FunOp ) = begin
@@ -30,14 +30,14 @@ Base.:-(FO1::FunOp, FO2::FunOp) = begin
3030 FunctionOperatorComposite (FO1, FO2, :- )
3131end
3232
33- Base.:- (FO1 :: FunOp , S:: LinearAlgebra.UniformScaling ) = begin
34- assertAddDimScaling (FO1 , S)
35- FunctionOperatorComposite (FO1 , createScalingForAddSub (FO1 , S), :- )
33+ Base.:- (FO :: FunOp , S:: LinearAlgebra.UniformScaling ) = begin
34+ assertAddDimScaling (FO , S)
35+ FunctionOperatorComposite (FO , createScalingForAddSub (FO , S), :- )
3636end
3737
38- Base.:- (S:: LinearAlgebra.UniformScaling , FO2 :: FunOp ) = begin
39- assertAddDimScaling (FO2 , S)
40- FunctionOperatorComposite (createScalingForAddSub (FO2 , S), FO2 , :- )
38+ Base.:- (S:: LinearAlgebra.UniformScaling , FO :: FunOp ) = begin
39+ assertAddDimScaling (FO , S)
40+ FunctionOperatorComposite (createScalingForAddSub (FO , S), FO , :- )
4141end
4242
4343Base.:* (FO1:: FunOp , FO2:: FunOp ) = begin
@@ -52,17 +52,21 @@ Base.:*(FO::FunctionOperator, S::LinearAlgebra.UniformScaling{Bool}) =
5252Base.:* (FO:: FunctionOperatorComposite , S:: LinearAlgebra.UniformScaling{Bool} ) =
5353 FunctionOperatorComposite (FO, name = getName (FO) * " * I" )
5454
55- Base.:* (FO1:: FunOp , S:: LinearAlgebra.UniformScaling ) =
56- FunctionOperatorComposite (FO1, createScalingForMult (FO1, S, FO1. inDims), :* )
57-
5855Base.:* (S:: LinearAlgebra.UniformScaling{Bool} , FO:: FunctionOperator ) =
5956 FunctionOperator (FO, name = " I * " * getName (FO))
6057
6158Base.:* (S:: LinearAlgebra.UniformScaling{Bool} , FO:: FunctionOperatorComposite ) =
6259 FunctionOperatorComposite (FO, name = " I * " * getName (FO))
6360
64- Base.:* (S:: LinearAlgebra.UniformScaling , FO2:: FunOp ) =
65- FunctionOperatorComposite (createScalingForMult (FO2, S, FO2. outDims), FO2, :* )
61+ Base.:* (FO:: FunOp , S:: LinearAlgebra.UniformScaling ) =
62+ FunctionOperatorComposite (FO, createScalingForMult (FO, S, FO. inDims), :* )
63+
64+ Base.:* (S:: LinearAlgebra.UniformScaling , FO:: FunOp ) =
65+ FunctionOperatorComposite (createScalingForMult (FO, S, FO. outDims), FO, :* )
66+
67+ Base.:* (FO:: FunOp , λ:: Number ) = FO * (λ* I)
68+
69+ Base.:* (λ:: Number , FO:: FunOp ) = (λ* I) * FO
6670
6771# Adjoint operator creates a new FunctionOperatorComposite object, toggles the adjoint field and
6872# switches the input and output dimension constraints (and also voids plan for FunctionOperatorComposite)
0 commit comments