
MathObj.LaurentPolynomial  Portability  requires multiparameter type classes  Stability  provisional  Maintainer  numericprelude@henningthielemann.de 





Description 
Polynomials with negative and positive exponents.


Synopsis 



Documentation 


Polynomial including negative exponents
 Constructors  Cons   expon :: Int   coeffs :: [a]  

 Instances  


Basic Operations




















Show




Additive






addShiftedMany :: C a => [Int] > [[a]] > [a]  Source 

Add lists of numbers respecting a relative shift between the starts of the lists.
The shifts must be nonnegative.
The list of relative shifts is one element shorter
than the list of summands.
Infinitely many summands are permitted,
provided that runs of zero shifts are all finite.
We could add the lists either with foldl or with foldr,
foldl would be straightforward, but more time consuming (quadratic time)
whereas foldr is not so obvious but needs only linear time.
(stars denote the coefficients,
frames denote what is contained in the interim results)
foldl sums this way:
   *******************************
  +
  ************************
 +
 ************
+
I.e. foldl would use much time find the time differences
by successive subtraction 1.
foldr mixes this way:
+
 *******************************
 +
  ************************
  +
   ************


addShifted :: C a => Int > [a] > [a] > [a]  Source 






Module


scale :: C a => a > [a] > [a]  Source 


Ring




Field.C






Comparisons



Two polynomials may be stored differently.
This function checks whether two values of type LaurentPolynomial
actually represent the same polynomial.





Check whether a Laurent polynomial has only the absolute term,
that is, it represents the constant polynomial.


Transformations of arguments



p(z) > p(z)



p(z) > p(1/z)



p(exp(ix)) > conjugate(p(exp(ix)))
If you interpret (p*) as a linear operator on the space of Laurent polynomials,
then (adjoint p *) is the adjoint operator.


Produced by Haddock version 2.4.2 