#19282: Operators expander in categories
-------------------------------------+-------------------------------------
Reporter: elixyre | Owner:
Type: PLEASE CHANGE | Status: new
Priority: major | Milestone: sage-6.9
Component: categories | Keywords:
Merged in: | Authors: Jean-Baptiste
Reviewers: | Priez
Work issues: | Report Upstream: N/A
Commit: | Branch:
8e35b830e77028d25e2614aadc9d0708a1872fca|
public/hopf_algebras/categories/misc
Stopgaps: | Dependencies:
-------------------------------------+-------------------------------------
In Sage, mathematical structures as dendrifom algebras, algebras with
internal product, ''etc'' involve to implement operators in several class.
For example, if I wish define a new amazing operator `foo` in the category
`CategoryOfSomeWonderfulStructures`, I have to do that:
{{{#!python
class CategoryOfSomeWonderfulStructures(Category):
def super_categories(self):
return [...]
class ParentMethods:
def foo(self, I):
'''
My amazing unary operator with definition
'''
class ElementMethods:
def foo(self):
'''
My amazing unary operator applied
'''
return self.parent().foo(self)
class WithRealizations(WithRealizationsCategory):
class ParentMethods:
def foo(self, I):
return self.a_realization().foo(I)
class Realizations(RealizationsCategory):
class ParentMethods:
def foo_by_coercion(self, I):
... looking for the good realizations which knows
how to do
class WithBasis(CategoryWithAxiom_over_base_ring):
class ParentMethods:
@abstract_method
def foo_on_basis(self, i):
pass
def foo_by_linearity(self, I):
return self.linear_combination(...)
}}}
I propose to provide two methods (one for unary operator and one other for
binary operator) such that the implementation could be resume to
{{{#!python
class CategoryOfSomeWonderfulStructures(Category):
def super_categories(self):
return [...]
class ParentMethods:
def foo(self, I):
'''
My amazing unary operator with definition
'''
expand_unary_operator(CategoryOfSomeWonderfulStructures,
CategoryOfSomeWonderfulStructures.ParentMethods.foo)
}}}
--
Ticket URL: <http://trac.sagemath.org/ticket/19282>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.