Skip to content

Commit

Permalink
fixed MultiVector and Blade copy for +,- ops #16
Browse files Browse the repository at this point in the history
  • Loading branch information
chakravala committed May 27, 2019
1 parent b2899b3 commit f2d343a
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions src/algebra.jl
Expand Up @@ -754,7 +754,7 @@ function generate_product_algebra(Field=Field,MUL=:*,ADD=:+,SUB=:-,VEC=:mvec,CON
end
function $op(a::$Value{V,G,A,S} where A,b::MultiVector{T,V}) where {T<:$Field,V,G,S<:$Field}
$(insert_expr((:N,:t),VEC)...)
out = $(bcast(bop,:(value(b,$VEC(N,t)),)))
out = $(bcast(bop,:(copy(value(b,$VEC(N,t))),)))
addmulti!(out,value(a,t),bits(basis(a)),Dimension{N}())
return MultiVector{t,V}(out)
end
Expand All @@ -770,7 +770,7 @@ function generate_product_algebra(Field=Field,MUL=:*,ADD=:+,SUB=:-,VEC=:mvec,CON
$op(a::MultiVector{T,V}) where {T<:$Field,V} = MultiVector{$TF,V}($(bcast(bop,:(value(a),))))
function $op(a::Basis{V,G},b::MultiVector{T,V}) where {T<:$Field,V,G}
$(insert_expr((:N,:t),VEC)...)
out = $(bcast(bop,:(value(b,$VEC(N,t)),)))
out = $(bcast(bop,:(copy(value(b,$VEC(N,t))),)))
addmulti!(out,value(a,t),bits(basis(a)),Dimension{N}())
return MultiVector{t,V}(out)
end
Expand Down Expand Up @@ -814,7 +814,7 @@ function generate_product_algebra(Field=Field,MUL=:*,ADD=:+,SUB=:-,VEC=:mvec,CON
end
function $op(a::$Value{V,G,A,S} where A,b::$Blade{T,V,G}) where {T<:$Field,V,G,S<:$Field}
$(insert_expr((:N,:t),VEC)...)
out = $(bcast(bop,:(value(b,$VEC(N,G,t)),)))
out = $(bcast(bop,:(copy(value(b,$VEC(N,G,t))),)))
addblade!(out,value(a,t),basis(a),Dimension{N}())
return MBlade{t,V,G}(out)
end
Expand Down Expand Up @@ -842,7 +842,7 @@ function generate_product_algebra(Field=Field,MUL=:*,ADD=:+,SUB=:-,VEC=:mvec,CON
end
function $op(a::Basis{V,G},b::$Blade{T,V,G}) where {T<:$Field,V,G}
$(insert_expr((:N,:t),VEC)...)
out = $(bcast(bop,:(value(b,$VEC(N,G,t)),)))
out = $(bcast(bop,:(copy(value(b,$VEC(N,G,t))),)))
addblade!(out,value(a,t),basis(a),Dimension{N}())
return MBlade{t,V,G}(out)
end
Expand Down

0 comments on commit f2d343a

Please sign in to comment.