I am currently developing some code that piggybacks onto ApproxFun for the handling of spaces. Concretely, I implement a MatrixFun object that behaves like a ApproxFun.Fun, but that has matrix-valued coefficients. As I have to code up the handling of spaces myself in this case, I came across the following issue:
When I want to differentiate a (matrix-valued) Chebyshev function, I can do so by applying the matrix associated to Derivative(Chebyshev()). This, however, takes me to the space Ultraspherical(1). When I try to undo this by using Conversion(Ultraspherical(1), Chebyshev()), I get the error ArgumentError: please implement Ultraspherical(1) → Chebyshev().
Now, this is probably a bug, because
(a) ApproxFunOrthogonalPolynomials handles this case when computing derivatives itself and
(b) ApproxFunOrthogonalPolynomials.ConcreteConversion(Ultraspherical(1), Chebyshev()) actually exists.
I can use Fact (b) to construct a workaround, but I would much appreciate to keep the code clean. This should also be an easy fix on your side.
I am currently developing some code that piggybacks onto ApproxFun for the handling of spaces. Concretely, I implement a
MatrixFunobject that behaves like aApproxFun.Fun, but that has matrix-valued coefficients. As I have to code up the handling of spaces myself in this case, I came across the following issue:When I want to differentiate a (matrix-valued) Chebyshev function, I can do so by applying the matrix associated to
Derivative(Chebyshev()). This, however, takes me to the spaceUltraspherical(1). When I try to undo this by usingConversion(Ultraspherical(1), Chebyshev()), I get the errorArgumentError: please implement Ultraspherical(1) → Chebyshev().Now, this is probably a bug, because
(a) ApproxFunOrthogonalPolynomials handles this case when computing derivatives itself and
(b)
ApproxFunOrthogonalPolynomials.ConcreteConversion(Ultraspherical(1), Chebyshev())actually exists.I can use Fact (b) to construct a workaround, but I would much appreciate to keep the code clean. This should also be an easy fix on your side.