Skip to content

Faster comparison of manifold points #23592

@egourgoulhon

Description

@egourgoulhon

Comparison of manifold points, as implemented in ManifoldPoint.__eq__, relies on comparison of coordinate values in a common chart. When coordinates are symbolic, this goes through Maxima and can take a lot of time. Now, comparison of points is involved in the unique representation of tangent spaces. When many tangent spaces are created (as for instance when plotting a vector field), this has a non-neglible cost. This ticket makes ManifoldPoint.__eq__ faster by invoking (a-b).is_trivial_zero() when a and b are symbolic coordinates of two points, while the previous version was using a == b. Note that for non-symbolic values (i.e. numerical values), a == b is still used.

CC: @sagetrac-karimvanaelst @tscrim

Component: geometry

Keywords: manifold point

Author: Eric Gourgoulhon

Branch/Commit: 48a66fc

Reviewer: David Roe

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions