Skip to content

Replace Maxima with Pynac/Singular in Expression.factor() #23835

@rwst

Description

@rwst

The default for symbolic factorization should be changed. Maxima as default should be replaced with a call to Pynac's factor() implementation, which itself uses Singular at the moment. Maxima should be made available via ex.factor(algorithm=...).

As an example of performance gain here one of the Fateman benchmarks:

sage: var('a b c k s y z')
(a, b, c, k, s, y, z)
sage: f = (1+x+y+z)^20+1
sage: g = (f*(f+1)).expand()
sage: %time _=g.factor()

This takes 11 seconds on 8.1.beta5 and 3.3 seconds with Pynac factor (identical time using polynomial ring).

Depends on #23950

CC: @tscrim

Component: symbolics

Author: Ralf Stephan

Branch: 19cff3a

Reviewer: Travis Scrimshaw

Issue created by migration from https://trac.sagemath.org/ticket/23835

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions