summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--numpy/polynomial/polytemplate.py89
1 files changed, 80 insertions, 9 deletions
diff --git a/numpy/polynomial/polytemplate.py b/numpy/polynomial/polytemplate.py
index 9d5607467..d8db00f15 100644
--- a/numpy/polynomial/polytemplate.py
+++ b/numpy/polynomial/polytemplate.py
@@ -45,11 +45,11 @@ class $name(pu.PolyBase) :
Attributes
----------
- coef : (N,) array
+ coef : (N,) ndarray
$name coefficients, from low to high.
- domain : (2,) array
+ domain : (2,) ndarray
Domain that is mapped to ``window``.
- window : (2,) array
+ window : (2,) ndarray
Window that ``domain`` is mapped to.
Class Attributes
@@ -659,14 +659,19 @@ class $name(pu.PolyBase) :
def linspace(self, n=100, domain=None):
"""Return x,y values at equally spaced points in domain.
- Returns x, y values at `n` equally spaced points across domain.
- Here y is the value of the polynomial at the points x. This is
- intended as a plotting aid.
+ Returns x, y values at `n` linearly spaced points across domain.
+ Here y is the value of the polynomial at the points x. By default
+ the domain is the same as that of the $name instance. This method
+ is intended mostly as a plotting aid.
Parameters
----------
n : int, optional
Number of point pairs to return. The default value is 100.
+ domain : {None, array_like}
+ If not None, the specified domain is used instead of that of
+ the calling instance. It should be of the form ``[beg,end]``.
+ The default is None.
Returns
-------
@@ -784,7 +789,7 @@ class $name(pu.PolyBase) :
Returns
-------
- object : $name
+ object : $name instance
Series with the specified roots.
See Also
@@ -808,7 +813,7 @@ class $name(pu.PolyBase) :
Parameters
----------
domain : array_like
- The resulting array must be if the form ``[beg, end]``, where
+ The resulting array must be of the form ``[beg, end]``, where
``beg`` and ``end`` are the endpoints of the domain.
window : array_like
The resulting array must be if the form ``[beg, end]``, where
@@ -816,10 +821,76 @@ class $name(pu.PolyBase) :
Returns
-------
- identity : $name object
+ identity : $name instance
"""
off, scl = pu.mapparms(window, domain)
coef = ${nick}line(off, scl)
return $name(coef, domain, window)
+
+ @staticmethod
+ def basis(deg, domain=$domain, window=$domain):
+ """$name polynomial of degree `deg`.
+
+ Returns an instance of the $name polynomial of degree `d`.
+
+ Parameters
+ ----------
+ deg : int
+ Degree of the $name polynomial. Must be >= 0.
+ domain : array_like
+ The resulting array must be of the form ``[beg, end]``, where
+ ``beg`` and ``end`` are the endpoints of the domain.
+ window : array_like
+ The resulting array must be if the form ``[beg, end]``, where
+ ``beg`` and ``end`` are the endpoints of the window.
+
+ Returns
+ p : $name instance
+
+ Notes
+ -----
+ .. versionadded:: 1.7.0
+
+ """
+ ideg = int(deg)
+ if ideg != deg or ideg < 0:
+ raise ValueError("deg must be non-negative integer")
+ return $name([0]*ideg + [1], domain, window)
+
+ @staticmethod
+ def cast(series, domain=$domain, window=$domain):
+ """Convert instance to equivalent $name series.
+
+ The `series` is expected to be an instance of some polynomial
+ series of one of the types supported by by the numpy.polynomial
+ module, but could be some other class that supports the convert
+ method.
+
+ Parameters
+ ----------
+ series : series
+ The instance series to be converted.
+ domain : array_like
+ The resulting array must be of the form ``[beg, end]``, where
+ ``beg`` and ``end`` are the endpoints of the domain.
+ window : array_like
+ The resulting array must be if the form ``[beg, end]``, where
+ ``beg`` and ``end`` are the endpoints of the window.
+
+ Returns
+ p : $name instance
+ A $name series equal to the `poly` series.
+
+ See Also
+ --------
+ convert -- similar instance method
+
+ Notes
+ -----
+ .. versionadded:: 1.7.0
+
+ """
+ return series.convert(domain, $name, window)
+
'''.replace('REL_IMPORT', rel_import))