.. _spkg_sagemath_categories:

=================================================================================================
sagemath_categories: Sage categories, basic rings, polynomials, functions
=================================================================================================


The pip-installable distribution package ``passagemath-categories`` is a
distribution of a small part of the Sage Library.

It provides a small subset of the modules of the Sage library
("sagelib", ``passagemath-standard``) building on top of ``passagemath-objects``
(providing Sage objects, the element/parent framework, categories, the coercion
system and the related metaclasses), making various additional categories
available without introducing dependencies on additional mathematical
libraries.


What is included
----------------

* `Structure <https://passagemath.org/docs/latest/html/en/reference/structure/index.html>`_, `Coercion framework <https://passagemath.org/docs/latest/html/en/reference/coercion/index.html>`_, `Base Classes, Metaclasses <https://passagemath.org/docs/latest/html/en/reference/misc/index.html#special-base-classes-decorators-etc>`_

* `Categories and functorial constructions <https://passagemath.org/docs/latest/html/en/reference/categories/index.html>`_

* `Sets <https://passagemath.org/docs/latest/html/en/reference/sets/index.html>`_

* Basic Combinatorial and Data Structures: `Binary trees <https://passagemath.org/docs/latest/html/en/reference/data_structures/sage/misc/binary_tree.html>`_, `Bitsets <https://passagemath.org/docs/latest/html/en/reference/data_structures/sage/data_structures/bitset.html>`_, `Permutations <https://passagemath.org/docs/latest/html/en/reference/combinat/sage/combinat/permutation.html>`_, Combinations

* Basic Rings and Fields: `Integers, Rationals <https://passagemath.org/docs/latest/html/en/reference/rings_standard/index.html>`_, `Double Precision Reals <https://passagemath.org/docs/latest/html/en/reference/rings_numerical/sage/rings/real_double.html>`_, `Z/nZ <https://passagemath.org/docs/latest/html/en/reference/finite_rings/sage/rings/finite_rings/integer_mod_ring.html>`_

* `Commutative Polynomials <https://passagemath.org/docs/latest/html/en/reference/polynomial_rings/index.html>`_, `Power Series and Laurent Series <https://passagemath.org/docs/latest/html/en/reference/power_series/index.html>`_, `Rational Function Fields <https://passagemath.org/docs/latest/html/en/reference/function_fields/index.html>`_

* Arithmetic Functions, `Elementary and Special Functions <https://passagemath.org/docs/latest/html/en/reference/functions/index.html>`_ as generic entry points

* Base classes for Groups, Rings, `Finite Fields <https://passagemath.org/docs/latest/html/en/reference/finite_rings/sage/rings/finite_rings/finite_field_constructor.html>`_, `Number Fields <https://passagemath.org/docs/latest/html/en/reference/number_fields/sage/rings/number_field/number_field_base.html>`_, `Schemes <https://passagemath.org/docs/latest/html/en/reference/schemes/index.html>`_

* Facilities for `Parallel Computing <https://passagemath.org/docs/latest/html/en/reference/parallel/index.html>`_, `Formatted Output <https://passagemath.org/docs/latest/html/en/reference/misc/index.html#formatted-output>`_

Available in other distribution packages
-----------------------------------------------

* `passagemath-combinat <https://pypi.org/project/passagemath-combinat>`_:
  Algebraic combinatorics, combinatorial representation theory

* `passagemath-graphs <https://pypi.org/project/passagemath-graphs>`_:
  Graphs, posets, hypergraphs, designs, abstract complexes, combinatorial polyhedra, abelian sandpiles, quivers

* `passagemath-groups <https://pypi.org/project/passagemath-groups>`_:
  Groups, invariant theory

* `passagemath-modules <https://pypi.org/project/passagemath-modules>`_:
  Vectors, matrices, tensors, vector spaces, affine spaces,
  modules and algebras, additive groups, quadratic forms, root systems, homology, coding theory, matroids

* `passagemath-plot <https://pypi.org/project/passagemath-plot>`_:
  Plotting and graphics with Matplotlib, Three.JS, etc.

* `passagemath-polyhedra <https://pypi.org/project/passagemath-polyhedra>`_:
  Convex polyhedra in arbitrary dimension, triangulations, polyhedral fans, lattice points, geometric complexes, hyperplane arrangements

* `passagemath-repl <https://pypi.org/project/passagemath-repl>`_:
  IPython REPL, the interactive language of Passagemath (preparser), interacts, development tools

* `passagemath-schemes <https://pypi.org/project/passagemath-schemes>`_:
  Schemes, varieties, Groebner bases, elliptic curves, algebraic Riemann surfaces, modular forms, arithmetic dynamics

* `passagemath-symbolics <https://pypi.org/project/passagemath-symbolics>`_:
  Symbolic expressions, calculus, differentiable manifolds, asymptotics


Dependencies
------------

When building from source, development packages of ``gmp``, ``mpfr``, and ``mpc`` are needed.


Type
----

standard


Dependencies
------------

- $(PYTHON)
- $(PYTHON_TOOLCHAIN)
- :ref:`spkg_cysignals`
- :ref:`spkg_cython`
- :ref:`spkg_gmp`
- :ref:`spkg_gmpy2`
- :ref:`spkg_jinja2`
- :ref:`spkg_memory_allocator`
- :ref:`spkg_mpc`
- :ref:`spkg_mpfr`
- :ref:`spkg_pkgconf`
- :ref:`spkg_pkgconfig`
- :ref:`spkg_sage_conf`
- :ref:`spkg_sage_setup`
- :ref:`spkg_sagemath_environment`
- :ref:`spkg_sagemath_objects`
- :ref:`spkg_setuptools`

Version Information
-------------------

package-version.txt::

    10.8.3.rc3

version_requirements.txt::

    passagemath-categories == 10.8.3rc3

Installation commands
---------------------

.. tab:: PyPI:

   .. CODE-BLOCK:: bash

       $ pip install passagemath-categories==10.8.3rc3

.. tab:: Sage distribution:

   .. CODE-BLOCK:: bash

       $ sage -i sagemath_categories


However, these system packages will not be used for building Sage
because ``spkg-configure.m4`` has not been written for this package;
see :issue:`27330` for more information.
