Skip to content

Commit

Permalink
improved arbitrary precision dispatch and SymEngine compat
Browse files Browse the repository at this point in the history
  • Loading branch information
chakravala committed Sep 20, 2019
1 parent 347fb90 commit 97eac43
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 1 deletion.
1 change: 1 addition & 0 deletions src/Grassmann.jl
Original file line number Diff line number Diff line change
Expand Up @@ -439,6 +439,7 @@ function __init__()
parsym = (parsym...,RExpr)
end
@require SymPy="24249f21-da20-56a4-8eb1-6a02cf4ae2e6" generate_product_algebra(:(SymPy.Sym),:svec,:(SymPy.:*),:(SymPy.:+),:(SymPy.:-),:(SymPy.conj))
@require SymEngine="123dc426-2d89-5057-bbad-38513e3affd8" generate_product_algebra(:(SymEngine.Basic),:svec,:(SymEngine.:*),:(SymEngine.:+),:(SymEngine.:-),:(SymEngine.conj))
end

end # module
7 changes: 6 additions & 1 deletion src/algebra.jl
Original file line number Diff line number Diff line change
Expand Up @@ -482,7 +482,7 @@ function generate_product_algebra(Field=Field,VEC=:mvec,MUL=:*,ADD=:+,SUB=:-,CON
elseif Field (SymField,:(SymPy.Sym))
declare_mutating_operations(:(SizedArray{Tuple{M},T,1,1}),Field,set_val,SUB,MUL)
end
Field == :(SymPy.Sym) && for par (:parany,:parval,:parsym)
Field (:(SymPy.Sym),:(SymEngine.Basic)) && for par (:parany,:parval,:parsym)
@eval $par = ($par...,$Field)
end
TF = Field Fields ? :Any : :T
Expand Down Expand Up @@ -1273,6 +1273,11 @@ end

generate_product_algebra()
generate_product_algebra(Complex)
generate_product_algebra(Rational{BigInt},:svec)
for Big (BigFloat,BigInt)
generate_product_algebra(Big,:svec)
generate_product_algebra(Complex{Big},:svec)
end
generate_product_algebra(SymField,:svec,:($Sym.:∏),:($Sym.:∑),:($Sym.:-),:($Sym.conj))

const NSE = Union{Symbol,Expr,<:Real,<:Complex}
Expand Down

0 comments on commit 97eac43

Please sign in to comment.