author Christian Bauer Fri, 20 Apr 2001 23:09:09 +0000 (23:09 +0000) committer Christian Bauer Fri, 20 Apr 2001 23:09:09 +0000 (23:09 +0000)
non-symbols as the second argument
- collect_distributed() produces result in distributed form (second argument
should be a list of symbols)

 ginsh/ginsh.1.in patch | blob | history ginsh/ginsh_parser.yy patch | blob | history

index d5a135f..97c0bbb 100644 (file)
@@ -229,16 +229,19 @@ detail here. Please refer to the GiNaC documentation.
.BI charpoly( matrix ", " symbol )
\- characteristic polynomial of a matrix
.br
-.BI coeff( expression ", " symbol ", " number )
-\- extracts coefficient of symbol^number from a polynomial
+.BI coeff( expression ", " object ", " number )
+\- extracts coefficient of object^number from a polynomial
.br
-.BI collect( expression ", " symbol )
-\- collects coefficients of like powers
+.BI collect( expression ", " object-or-list )
+\- collects coefficients of like powers (result in recursive form)
+.br
+.BI collect_distributed( expression ", " list )
+\- collects coefficients of like powers (result in distributed form)
.br
.BI content( expression ", " symbol )
\- content part of a polynomial
.br
-.BI degree( expression ", " symbol )
+.BI degree( expression ", " object )
\- degree of a polynomial
.br
.BI denom( expression )
@@ -280,10 +283,10 @@ detail here. Please refer to the GiNaC documentation.
.BI lcm( expression ", " expression )
\- least common multiple
.br
-.BI lcoeff( expression ", " symbol )
+.BI lcoeff( expression ", " object )
\- leading coefficient of a polynomial
.br
-.BI ldegree( expression ", " symbol )
+.BI ldegree( expression ", " object )
\- low degree of a polynomial
.br
.BI lsolve( equation-list ", " symbol-list )
@@ -330,7 +333,7 @@ detail here. Please refer to the GiNaC documentation.
.BI subs( expression ", " look-for-list ", " replace-by-list )
\- substitute subexpressions
.br
-.BI tcoeff( expression ", " symbol )
+.BI tcoeff( expression ", " object )
\- trailing coefficient of a polynomial
.br
.BI time( expression )
index 1a4e7e0..b36e2ec 100644 (file)
@@ -295,15 +295,18 @@ static ex f_charpoly(const exprseq &e)

static ex f_coeff(const exprseq &e)
{
-       CHECK_ARG(1, symbol, coeff);
CHECK_ARG(2, numeric, coeff);
-       return e.coeff(ex_to_symbol(e), ex_to_numeric(e).to_int());
+       return e.coeff(e, ex_to_numeric(e).to_int());
}

static ex f_collect(const exprseq &e)
{
-       CHECK_ARG(1, symbol, collect);
-       return e.collect(ex_to_symbol(e));
+       return e.collect(e);
+}
+
+static ex f_collect_distributed(const exprseq &e)
+{
+       return e.collect(e, true);
}

static ex f_content(const exprseq &e)
@@ -314,8 +317,7 @@ static ex f_content(const exprseq &e)

static ex f_degree(const exprseq &e)
{
-       CHECK_ARG(1, symbol, degree);
-       return e.degree(ex_to_symbol(e));
+       return e.degree(e);
}

static ex f_determinant(const exprseq &e)
@@ -352,7 +354,7 @@ static ex f_divide(const exprseq &e)
if (divide(e, e, q))
return q;
else
-               return *new fail();
+               return fail();
}

static ex f_eval2(const exprseq &e)
@@ -386,14 +388,12 @@ static ex f_is(const exprseq &e)

static ex f_lcoeff(const exprseq &e)
{
-       CHECK_ARG(1, symbol, lcoeff);
-       return e.lcoeff(ex_to_symbol(e));
+       return e.lcoeff(e);
}

static ex f_ldegree(const exprseq &e)
{
-       CHECK_ARG(1, symbol, ldegree);
-       return e.ldegree(ex_to_symbol(e));
+       return e.ldegree(e);
}

static ex f_normal2(const exprseq &e)
@@ -461,8 +461,7 @@ static ex f_subs3(const exprseq &e)

static ex f_tcoeff(const exprseq &e)
{
-       CHECK_ARG(1, symbol, tcoeff);
-       return e.tcoeff(ex_to_symbol(e));
+       return e.tcoeff(e);
}

static ex f_trace(const exprseq &e)
@@ -505,6 +504,7 @@ static const fcn_init builtin_fcns[] = {
{"charpoly", fcn_desc(f_charpoly, 2)},
{"coeff", fcn_desc(f_coeff, 3)},
{"collect", fcn_desc(f_collect, 2)},
+       {"collect_distributed", fcn_desc(f_collect_distributed, 2)},
{"content", fcn_desc(f_content, 2)},
{"degree", fcn_desc(f_degree, 2)},
{"denom", fcn_desc(f_denom, 1)},