Differences between revisions 3 and 4
Revision 3 as of 2008-04-22 06:17:59
Size: 792
Comment: add correct release date
Revision 4 as of 2008-04-22 09:09:47
Size: 1783
Comment:
Deletions are marked like this. Additions are marked like this.
Line 6: Line 6:
Sage has a new random number framwork (by Carl Witty) with a global random number state, so that results using pseudo-random numbers can be reproducible. Randomized doctests are now actually tested, instead of having their results ignored. Use set_random_seed(n) to set a new random number seed, and initial_seed() to find the most recently set seed (or the seed set at Sage startup, if no new seed has been set). For much more information on the new random number framework, type "sage.misc.randstate?". Sage has a new random number framwork (by Carl Witty) with a global random number state, so that results using pseudo-random numbers can be reproducible. Randomized doctests are now actually tested, instead of having their results ignored. Use {{{set_random_seed(n)}}} to set a new random number seed, and {{{initial_seed()}}} to find the most recently set seed (or the seed set at Sage startup, if no new seed has been set). For much more information on the new random number framework, type {{{sage.misc.randstate?}}}.

== GCC 4.3 Support ==

Sage 3.0 has full GCC 4.3 support, which means that every included package was fixed to compile with GCC 4.3 and the changes were pushed upstream.

== Boolean Polynomials ==

The PolyBoRi library was updated to version 0.3.1 leading to greater stability and better performance. The interface to PolyBoRi was also improved and the documentation updated. Also the conversion to/from PolyBoRi, Singular and Magma was greatly improved.

=== Example Usage ===

{{{#!python
sage: sr = mq.SR(1,1,1,4,gf2=True) # create a small scale AES system
sage: F,s = sr.polynomial_system()
sage: P = F.ring() # polynomial ring
sage: B = BooleanPolynomialRing(P.ngens(),P.variable_names(),order='lex') # quotient ring
sage: IB = Ideal([B(f) for f in F]) # create ideal
sage: IM = IB._magma_() # convert to Magma
sage: IS = IB._singular_() # convert to Singular
sage: gb = IS.groebner()
sage: P.change_ring(order='lex') == B.cover_ring()
True
}}}

Sage 3.0 Release Tour

Sage 3.0 was released on April 21st, 2008. For the official, comprehensive release notes, see the HISTORY.txt file that comes with the release. For the latest changes see [http://sagemath.org/announce/sage-3.0.txt sage-3.0.txt].

Random Numbers

Sage has a new random number framwork (by Carl Witty) with a global random number state, so that results using pseudo-random numbers can be reproducible. Randomized doctests are now actually tested, instead of having their results ignored. Use set_random_seed(n) to set a new random number seed, and initial_seed() to find the most recently set seed (or the seed set at Sage startup, if no new seed has been set). For much more information on the new random number framework, type sage.misc.randstate?.

GCC 4.3 Support

Sage 3.0 has full GCC 4.3 support, which means that every included package was fixed to compile with GCC 4.3 and the changes were pushed upstream.

Boolean Polynomials

The PolyBoRi library was updated to version 0.3.1 leading to greater stability and better performance. The interface to PolyBoRi was also improved and the documentation updated. Also the conversion to/from PolyBoRi, Singular and Magma was greatly improved.

Example Usage

   1 sage: sr = mq.SR(1,1,1,4,gf2=True) # create a small scale AES system
   2 sage: F,s = sr.polynomial_system()
   3 sage: P = F.ring() # polynomial ring
   4 sage: B = BooleanPolynomialRing(P.ngens(),P.variable_names(),order='lex') # quotient ring
   5 sage: IB = Ideal([B(f) for f in F]) # create ideal
   6 sage: IM = IB._magma_() # convert to Magma
   7 sage: IS = IB._singular_() # convert to Singular
   8 sage: gb = IS.groebner() 
   9 sage: P.change_ring(order='lex') == B.cover_ring()
  10 True

ReleaseTours/sage-3.0 (last edited 2009-12-26 14:42:39 by Minh Nguyen)