def _eval_expand_complex(self, *args): if self[0].is_real: return self re, im = self[0].as_real_imag() denom = sinh(re)**2 + Basic.sin(im)**2 return (sinh(re)*cosh(re) - \ S.ImaginaryUnit*Basic.sin(im)*Basic.cos(im))/denom
def vertices(self): Polygon.vertices.__doc__ points = [] c, r, n = self[:] v = 2*S.Pi/n for k in xrange(0, n): points.append( Point(c[0] + r*Basic.cos(k*v), c[1] + r*Basic.sin(k*v)) ) return points
def _eval_apply(self, arg): arg = Basic.sympify(arg) if isinstance(arg, Basic.Number): if isinstance(arg, Basic.NaN): return S.NaN elif isinstance(arg, Basic.Infinity): return S.Infinity elif isinstance(arg, Basic.NegativeInfinity): return S.NegativeInfinity elif isinstance(arg, Basic.Zero): return S.Zero elif arg.is_negative: return -self(-arg) else: i_coeff = arg.as_coefficient(S.ImaginaryUnit) if i_coeff is not None: return S.ImaginaryUnit * Basic.sin(i_coeff) else: coeff, terms = arg.as_coeff_terms() if coeff.is_negative: return -self(-arg)
def _eval_expand_complex(self, *args): if self[0].is_real: return self re, im = self[0].as_real_imag() return sinh(re)*Basic.cos(im) + cosh(re)*Basic.sin(im)*S.ImaginaryUnit
def _eval_expand_complex(self, *args): re, im = self[0].as_real_imag() cos, sin = Basic.cos(im), Basic.sin(im) return exp(re) * cos + S.ImaginaryUnit * exp(re) * sin
def arbitrary_point(self, parameter_name='t'): """Returns a symbolic point that is on the ellipse.""" t = Basic.Symbol(parameter_name, real=True) return Point( self.center[0] + self.hradius*Basic.cos(t), self.center[1] + self.vradius*Basic.sin(t))