@classmethod<EOL><INDENT>def fromroots(cls, roots, domain=[], window=None):<DEDENT>
[roots] = pu.as_series([roots], trim=False)<EOL>if domain is None:<EOL><INDENT>domain = pu.getdomain(roots)<EOL><DEDENT>elif type(domain) is list and len(domain) == <NUM_LIT:0>:<EOL><INDENT>domain = cls.domain<EOL><DEDENT>if window is None:<EOL><INDENT>window = cls.window<EOL><DEDENT>deg = len(roots)<EOL>off, scl = pu.mapparms(domain, window)<EOL>rnew = off + scl*roots<EOL>coef = cls._fromroots(rnew) / scl**deg<EOL>return cls(coef, domain=domain, window=window)<EOL>
Return series instance that has the specified roots.

        Returns a series representing the product
        ``(x - r[0])*(x - r[1])*...*(x - r[n-1])``, where ``r`` is a
        list of roots.

        Parameters
        ----------
        roots : array_like
            List of roots.
        domain : {[], None, array_like}, optional
            Domain for the resulting series. If None the domain is the
            interval from the smallest root to the largest. If [] the
            domain is the class domain. The default is [].
        window : {None, array_like}, optional
            Window for the returned series. If None the class window is
            used. The default is None.

        Returns
        -------
        new_series : series
            Series with the specified roots.