FunctionSpaceToUnivariatePowerSeries2(R, FE, Expon, UPS, TRAN, UTS, TEXP, coerce_Ex, x)ΒΆ

fs2ups.spad line 1 [edit on github]

This package converts expressions in some function space to power series in a variable x with coefficients in that function space. The function exprToUPS converts expressions to power series whose coefficients do not contain the variable x. The function exprToGenUPS converts functional expressions to power series whose coefficients may involve functions of log(x).

atan1: UPS -> UPS

atan1 should be local but conditional

exprToGenUPS: (FE, Boolean, Union(complex, real: two sides, real: left side, real: right side, just do it)) -> Union(%series: UPS, %problem: Record(func: String, prob: String))

exprToGenUPS(fcn, posCheck?, atanFlag) converts the expression fcn to a generalized power series. If posCheck? is true, log's of negative numbers are not allowed nor are nth roots of negative numbers with n even. If posCheck? is false, these are allowed. atanFlag determines how the case atan(f(x)), where f(x) has a pole, will be treated. The possible values of atanFlag are "complex", "real: two sides", "real: left side", "real: right side", and "just do it". If atanFlag is "complex", then no series expansion will be computed because, viewed as a function of a complex variable, atan(f(x)) has an essential singularity. Otherwise, the sign of the leading coefficient of the series expansion of f(x) determines the constant coefficient in the series expansion of atan(f(x)). If this sign cannot be determined, a series expansion is computed only when atanFlag is "just do it". When the leading term in the series expansion of f(x) is of odd degree (or is a rational degree with odd numerator), then the constant coefficient in the series expansion of atan(f(x)) for values to the left differs from that for values to the right. If atanFlag is "real: two sides", no series expansion will be computed. If atanFlag is "real: left side" the constant coefficient for values to the left will be used and if atanFlag "real: right side" the constant coefficient for values to the right will be used. If there is a problem in converting the function to a power series, we return a record containing the name of the function that caused the problem and a brief description of the problem. When expanding the expression into a series it is assumed that the series is centered at 0. For a series centered at a, the user should perform the substitution x -> x + a before calling this function.

exprToPS: (FE, Boolean, Union(complex, real: two sides, real: left side, real: right side, just do it), Boolean, FE) -> Union(%series: UPS, %problem: Record(func: String, prob: String))

exprToPS(fcn, posCheck?, atanFlag, log_flag, log_val) is like exprToUPS, but if log_flag is true it replaces logarithms of expansion variable by log_val

exprToPS: (FE, Boolean, Union(complex, real: two sides, real: left side, real: right side, just do it), Boolean, FE, FE -> Boolean, FE -> Boolean, FE -> Boolean) -> Union(%series: UPS, %problem: Record(func: String, prob: String))

exprToPS(fcn, posCheck?, atanFlag, log_flag, log_val, coef_chk, inv_chk, zero_chk) is like exprToPS(fcn, posCheck?, atanFlag, log_flag, log_val), but fails if coef_chk is false for some coefficient of fcn or if expansion process needs to invert element of FE for which inv_chk is false

exprToUPS: (FE, Boolean, Union(complex, real: two sides, real: left side, real: right side, just do it)) -> Union(%series: UPS, %problem: Record(func: String, prob: String))

exprToUPS(fcn, posCheck?, atanFlag) converts the expression fcn to a power series. If posCheck? is true, log's of negative numbers are not allowed nor are nth roots of negative numbers with n even. If posCheck? is false, these are allowed. atanFlag determines how the case atan(f(x)), where f(x) has a pole, will be treated. The possible values of atanFlag are "complex", "real: two sides", "real: left side", "real: right side", and "just do it". If atanFlag is "complex", then no series expansion will be computed because, viewed as a function of a complex variable, atan(f(x)) has an essential singularity. Otherwise, the sign of the leading coefficient of the series expansion of f(x) determines the constant coefficient in the series expansion of atan(f(x)). If this sign cannot be determined, a series expansion is computed only when atanFlag is "just do it". When the leading term in the series expansion of f(x) is of odd degree (or is a rational degree with odd numerator), then the constant coefficient in the series expansion of atan(f(x)) for values to the left differs from that for values to the right. If atanFlag is "real: two sides", no series expansion will be computed. If atanFlag is "real: left side" the constant coefficient for values to the left will be used and if atanFlag "real: right side" the constant coefficient for values to the right will be used. If there is a problem in converting the function to a power series, a record containing the name of the function that caused the problem and a brief description of the problem is returned. When expanding the expression into a series it is assumed that the series is centered at 0. For a series centered at a, the user should perform the substitution x -> x + a before calling this function.

integ: UPS -> UPS

integ should be local but conditional

integ_df: (UPS, UPS) -> UPS

integ_df should be local but conditional

integt: UTS -> UTS

integt should be local but conditional

localAbs: FE -> FE

localAbs(fcn) = abs(fcn) or sqrt(fcn^2) depending on whether or not FE has a function abs. This should be a local function, but the compiler won't allow it.

my_digamma: FE -> FE

my_digamma should be local but conditional

powToUPS: (List FE, Record(pos_Check?: Boolean, atan_Flag: Union(complex, real: two sides, real: left side, real: right side, just do it), coeff_check?: Union(FE -> Boolean, none), inv_check?: Union(FE -> Boolean, none), zero_check?: Union(FE -> Boolean, none), log_x_replace: Boolean, log_x_val: FE, cache: List Record(ker: Kernel FE, ser: Union(%series: UPS, %problem: Record(func: String, prob: String))))) -> Union(%series: UPS, %problem: Record(func: String, prob: String))

powToUPS should be local but conditional