@@ -306,23 +306,26 @@ conversion_rule(A::JacobiWeight, B::Space{<:IntervalOrSegmentDomain}) =
306
306
function defaultConversion (A:: JacobiWeight{<:Any,<:IntervalOrSegmentDomain} ,
307
307
B:: JacobiWeight{<:Any,<:IntervalOrSegmentDomain} )
308
308
309
- @assert isapproxinteger (A. β- B. β) && isapproxinteger (A. α- B. α)
309
+ Aβ, Aα = A. β, A. α
310
+ Bβ, Bα = B. β, B. α
310
311
311
- if isapprox (A. β,B. β) && isapprox (A. α,B. α)
312
+ @assert isapproxinteger (Aβ- Bβ) && isapproxinteger (Aα- Bα)
313
+
314
+ if isapprox (Aβ,Bβ) && isapprox (Aα,Bα)
312
315
ConversionWrapper (SpaceOperator (Conversion (A. space,B. space),A,B))
313
316
else
314
- @assert A . β ≥ B . β && A . α ≥ B . α
317
+ @assert Aβ ≥ Bβ && Aα ≥ Bα
315
318
# first check if a multiplication by JacobiWeight times B.space is overloaded
316
319
# this is currently designed for Jacobi multiplied by (1-x), etc.
317
- βdif,αdif= round (Int,A . β - B . β ),round (Int,A . α - B . α )
320
+ βdif,αdif= round (Int,Aβ - Bβ ),round (Int,Aα - Bα )
318
321
d= domain (A)
319
322
M= Multiplication (jacobiweight (βdif,αdif,d), A. space)
320
323
321
324
if rangespace (M)== JacobiWeight (βdif,αdif,A. space)
322
325
# M is the default, so we should use multiplication by polynomials instead
323
326
x= Fun (identity,d)
324
327
y= mobius (d,x) # we use mobius instead of tocanonical so that it works for Funs
325
- m= (1 + y)^ βdif* (1 - y)^ αdif
328
+ m = (1 + y)^ UInt ( βdif) * (1 - y)^ UInt ( αdif)
326
329
MC= promoterangespace (Multiplication (m,A. space), B. space)
327
330
328
331
ConversionWrapper (SpaceOperator (MC,A,B))# Wrap the operator with the correct spaces
0 commit comments