X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=ginac%2Ffactor.h;h=8c772795d1feb8fb16da5a38912d6e3260aca856;hp=e2ade545a4cde37859d532f1b3b0f76d67b2b896;hb=89d5356b4aa33cb4481575f9453f36c3404b015b;hpb=114449ae6f2cd3151d9b8342c570db021a9e892c diff --git a/ginac/factor.h b/ginac/factor.h index e2ade545..8c772795 100644 --- a/ginac/factor.h +++ b/ginac/factor.h @@ -1,11 +1,9 @@ /** @file factor.h * - * Polynomial factorization routines. Implementation. - * Only univariate at the moment and completely non-optimized! - */ + * Polynomial factorization. */ /* - * GiNaC Copyright (C) 1999-2008 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2010 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,15 +20,27 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#ifndef __GINAC_FACTOR_H__ -#define __GINAC_FACTOR_H__ +#ifndef GINAC_FACTOR_H +#define GINAC_FACTOR_H namespace GiNaC { class ex; -extern ex factor(const ex& poly); +/** Factorizes univariate and multivariate polynomials. + * + * The default option is factor_options::polynomial, which means that factor() + * will only factorize an expression if it is a proper polynomial (i.e. the + * flag info_flags::polynomial is set). Given the option factor_options::all, + * factor() will factorize all subexpressions, e.g. polynomials containing + * functions or polynomials inside function arguments. + * + * @param[in] poly expression to factorize + * @param[in] option options to influence the factorization + * @return factorized expression + */ +extern ex factor(const ex& poly, unsigned options = 0); } // namespace GiNaC -#endif // ndef __GINAC_FACTOR_H__ +#endif // ndef GINAC_FACTOR_H