@@ -9,6 +9,8 @@ Society for Industrial and Applied Mathematics, **2012**.
99"""
1010abstract type AbstractPolynomialBasis end
1111
12+ generators (basis:: AbstractPolynomialBasis ) = basis. polynomials
13+
1214function MP. polynomial (coefs:: Vector , basis:: AbstractPolynomialBasis )
1315 return MP. polynomial (i -> coefs[i], basis)
1416end
@@ -39,7 +41,46 @@ julia> @polyvar x
3941(x,)
4042
4143julia> basis_covering_monomials(ChebyshevBasis, [x^2, x^4])
42- ChebyshevBasisFirstKind{Polynomial{DynamicPolynomials.Commutative{DynamicPolynomials.CreationOrder}, Graded{LexOrder}, Float64}}(Polynomial{DynamicPolynomials.Commutative{DynamicPolynomials.CreationOrder}, Graded{LexOrder}, Float64} [1.0, -1.0 + 2.0x², 1.0 - 8.0x² + 8.0x⁴])
44+ ChebyshevBasisFirstKind( [1.0, -1.0 + 2.0x², 1.0 - 8.0x² + 8.0x⁴])
4345```
4446"""
4547function basis_covering_monomials end
48+
49+ function _show (io:: IO , mime:: MIME , basis:: AbstractPolynomialBasis )
50+ T = typeof (basis)
51+ print (io, nameof (T))
52+ print (io, " ([" )
53+ first = true
54+ # TODO use Base.show_vector here, maybe by wrapping the `generator` vector
55+ # into something that spits objects wrapped with the `mime` type
56+ for g in generators (basis)
57+ if ! first
58+ print (io, " , " )
59+ end
60+ first = false
61+ show (io, mime, g)
62+ end
63+ return print (io, " ])" )
64+ end
65+
66+ function Base. show (
67+ io:: IO ,
68+ mime:: MIME"text/plain" ,
69+ basis:: AbstractPolynomialBasis ,
70+ )
71+ return _show (io, mime, basis)
72+ end
73+ function Base. show (
74+ io:: IO ,
75+ mime:: MIME"text/print" ,
76+ basis:: AbstractPolynomialBasis ,
77+ )
78+ return _show (io, mime, basis)
79+ end
80+
81+ function Base. print (io:: IO , basis:: AbstractPolynomialBasis )
82+ return show (io, MIME " text/print" (), basis)
83+ end
84+ function Base. show (io:: IO , basis:: AbstractPolynomialBasis )
85+ return show (io, MIME " text/plain" (), basis)
86+ end
0 commit comments