Hello, I propose that the simple first phase of improving algebraic number theory in SAGE be to get the docstrings and doctest in the current number fields code into shape. Would anybody like to help me? I'll be in irc for the next few hours working on this.
If you do sagee: hg_scripts.pull(); hg_scripts.merge(); #etc you'll get a new command sage -coverage file.py Running it on the number fields code yields the report below (a score of 47% for elements and a score of 22% for number_field.py): Our first step should be to get both these to 100%. If anybody wants to help, meet me on irc.freenode.net in #sage-devel, so we don't replicate work. I'm going to start on number_field_element.pyx. [EMAIL PROTECTED]:~/d/sage/sage/rings/number_field$ pwd /home/was/d/sage/sage/rings/number_field [EMAIL PROTECTED]:~/d/sage/sage/rings/number_field$ sage -coverage * No functions in all.py No functions in class_group.py No functions in __init__.py ---------------------------------------------------------------------- number_field_element.pyx OVERALL SCORE: 47% (17 good, 19 bad) Missing documentation: * is_NumberFieldElement(x) * __create__NumberFieldElement_version0(parent, poly) * __reduce__(self) * __repr__(self) * _im_gens_(self, codomain, im_gens) * __getitem__(self, n) * __abs__(self) * complex_embeddings(self, prec=53) * complex_embedding(self, prec=53, i=0) * is_square(self) * __floordiv__(self, other) * __nonzero__(self) * __long__(self) * polynomial(self) * _set_multiplicative_order(self, n) * multiplicative_order(self) * trace(self) * norm(self) Missing doctests: * _pari_init_(self, var=None) ---------------------------------------------------------------------- ---------------------------------------------------------------------- number_field_ideal.py OVERALL SCORE: 22% (10 good, 35 bad) Missing documentation: * is_NumberFieldIdeal(x) * convert_from_zk_basis(field, hnf) * __cmp__(self, other) * _coerce_impl(self, x) * _repr_short(self) * _repr_(self) * norm(self) * number_field(self) * gens_reduced(self) * is_principal(self) * is_zero(self) * factor(self) * integral_basis(self) * integral_split(self) * is_maximal(self) * is_prime(self) * ramification(self) * residue_class_degree(self) * smallest_integer(self) * valuation(self) Missing doctests: * __init__(self, field, gens, coerce=True) * _contains_(self, x) * __elements_from_hnf(self, hnf) * divides(self, other) * factor(self) * is_maximal(self) * is_prime(self) * is_principal(self, certify=True) * is_zero(self) * ramification(self) * residue_class_degree(self) * valuation(self, p) * pari_rhnf(self) * absolute_ideal(self) * __invert__(self) ---------------------------------------------------------------------- ---------------------------------------------------------------------- number_field.py OVERALL SCORE: 32% (35 good, 72 bad) Missing documentation: * gp() * QuadraticField(D, names, check=False) * is_QuadraticField(x) * is_NumberField(x) * is_NumberFieldExtension(x) * CyclotomicField(n, names=None) * is_CyclotomicField(x) * __init__(self, polynomial, name, latex_name=None, check=True) * latex_variable_name(self, name=None) * _repr_(self) * _latex_(self) * _coerce_from_str(self, x) * _coerce_from_other_number_field(self, x) * _coerce_non_number_field_element_in(self, x) * _coerce_impl(self, x) * category(self) * __cmp__(self, other) * _ideal_class_(self) * _is_valid_homomorphism_(self, codomain, im_gens) * characteristic(self) * class_number(self, certify=True) * degree(self) * gen(self, n=0) * is_field(self) * ngens(self) * order(self) * order_table(self) * polynomial_ntl(self) * polynomial(self) * defining_polynomial(self) * polynomial_ring(self) * _repr_(self) * _coerce_impl(self, x) * _ideal_class_(self) * _pari_base_bnf(self, certify=False) * _pari_base_nf(self) * gen(self, n=0) * pari_rnf(self) * pari_relative_polynomial(self) * base_field(self) * base_ring(self) * polynomial(self) * __init__(self, n, names) * _repr_(self) * _latex_(self) * zeta_order(self) * multiplicative_order_table(self) * __init__(self, polynomial, name=None, check=True) * is_fundamental_discriminant(D) * NumberField_generic_v1(poly, name, latex_name) * NumberField_extension_v1(base_field, poly, name, latex_name) * NumberField_cyclotomic_v1(zeta_order, name) * NumberField_quadratic_v1(poly, name) Missing doctests: * pari_polynomial(self) * pari_nf(self) * pari_bnf(self, certify=False) * pari_bnf_certify(self) * class_group(self, certify=True) * composite_fields(self, other, names) * different(self) * __init__(self, base, polynomial, name, latex_name=None, names=None) * __call__(self, x) * __base_inclusion(self, element) * pari_polynomial(self) * absolute_field(self, name=None) * absolute_polynomial(self) * extension(self, poly, name='b') * _coerce_from_other_cyclotomic_field(self, x, only_canonical=False) * _coerce_from_gap(self, x) * _coerce_impl(self, x) * integral_basis(self) * class_number(self, proof = True) ---------------------------------------------------------------------- No functions in ring_of_integers.py No functions in unit_group.py --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/ -~----------~----~----~----~------~----~------~--~---