€csage.server.notebook.notebook Notebook q)q}q(U_Notebook__worksheetsq}q(U(csage.server.notebook.worksheet Worksheet qoq}q(U_Worksheet__filenameq U_U_Worksheet__cellsq ]q ((csage.server.notebook.cell Cell q oq }q(U _Cell__inqU2+3qU_Cell__introspect_htmlqU!
qU_Cell__worksheetqhU_Cell__completionsq‰U_Cell__introspectq‰U_Cell__out_htmlqUU	_Cell__idqMU_Cell__is_htmlq‰U_before_preparseqURos.chdir("/Users/was/talks/2007-01-05-msr/sage_notebook/worksheets/_/cells/0")
2+3qU
_Cell__dirqU"sage_notebook/worksheets/_/cells/0qU
_Cell__outqU
5

qUhas_new_outputq‰U_Cell__versionq KU_Cell__sageq!csage.interfaces.sage0
reduce_load_Sage
q")Rq#U_Cell__typeq$Uwrapq%U_Cell__timeq&‰U_Cell__interruptedq'‰ub(hoq(}q)(U	_Cell__inq*U2+5q+hU!
q,U_Cell__worksheetq-hU_Cell__completionsq.‰h‰U_Cell__out_htmlq/UU	_Cell__idq0Mh‰hURos.chdir("/Users/was/talks/2007-01-05-msr/sage_notebook/worksheets/_/cells/1")
2+5q1U
_Cell__dirq2U"sage_notebook/worksheets/_/cells/1q3U
_Cell__outq4U
7

q5Uhas_new_outputq6‰U_Cell__versionq7Kh!h#U_Cell__typeq8h%h&‰U_Cell__interruptedq9‰ub(hoq:}q;(h*U$E = magma.EllipticCurve([1,2,3,4,5])qq=h-hh.‰h‰h/Uh0Mh‰hU}os.chdir("/Volumes/HOME/talks/2006-12-waterloo/sage/sage_notebook/worksheets/_/cells/2")
E = magma.EllipticCurve([1,2,3,4,5])q>h2U"sage_notebook/worksheets/_/cells/2q?h4U

q@h6‰h7Kh!h#h8UwrapqAh&‰h9‰ub(hoqB}qC(h*UEhU!
qDh-hh.‰h‰h/Uh0Mh‰hUZos.chdir("/Volumes/HOME/talks/2006-12-waterloo/sage/sage_notebook/worksheets/_/cells/3")
EqEh2U"sage_notebook/worksheets/_/cells/3qFh4UX
Elliptic Curve defined by y^2 + x*y + 3*y = x^3 + 2*x^2 + 4*x + 5 over Rational Field

qGh6‰h7Kh!h#h8hAh&‰h9‰ub(hoqH}qI(h*Utype(E)qJhU!
qKh-hh.‰h‰h/Uh0Mh‰hU`os.chdir("/Volumes/HOME/talks/2006-12-waterloo/sage/sage_notebook/worksheets/_/cells/4")
type(E)qLh2U"sage_notebook/worksheets/_/cells/4qMh4U/


qNh6‰h7Kh!h#h8hAh&‰h9‰ub(hoqO}qP(h*UE.name()qQhU!
qRh-hh.‰h‰h/Uh0Mh‰hUaos.chdir("/Volumes/HOME/talks/2006-12-waterloo/sage/sage_notebook/worksheets/_/cells/5")
E.name()qSh2U"sage_notebook/worksheets/_/cells/5qTh4U
'_sage_[7]'

qUh6‰h7Kh!h#h8hAh&‰h9‰ub(hoqV}qW(h*UE.Rank()qXhU!
qYh-hh.‰h‰h/Uh0Mh‰hUaos.chdir("/Volumes/HOME/talks/2006-12-waterloo/sage/sage_notebook/worksheets/_/cells/6")
E.Rank()qZh2U"sage_notebook/worksheets/_/cells/6q[h4U
1

q\h6‰h7Kh!h#h8hAh&‰h9‰ub(hoq]}q^(h*Ua = maple('2007')q_hU!
q`h-hh.‰h‰h/Uh0Mh‰hUjos.chdir("/Volumes/HOME/talks/2006-12-waterloo/sage/sage_notebook/worksheets/_/cells/7")
a = maple('2007')qah2U"sage_notebook/worksheets/_/cells/7qbh4U

qch6‰h7Kh!h#h8hAh&‰h9‰ub(hoqd}qe(h*UahU!
qfh-hh.‰h‰h/Uh0Mh‰hUZos.chdir("/Volumes/HOME/talks/2006-12-waterloo/sage/sage_notebook/worksheets/_/cells/8")
aqgh2U"sage_notebook/worksheets/_/cells/8qhh4U
2007

qih6‰h7Kh!h#h8hAh&‰h9‰ub(hoqj}qk(h*Ua.ifactor()qlhU!
qmh-hh.‰h‰h/Uh0M	h‰hUdos.chdir("/Volumes/HOME/talks/2006-12-waterloo/sage/sage_notebook/worksheets/_/cells/9")
a.ifactor()qnh2U"sage_notebook/worksheets/_/cells/9qoh4U
``(3)^2*``(223)

qph6‰h7Kh!h#h8hAh&‰h9‰ub(hoqq}qr(h*Ua.name()qshU!
qth-hh.‰h‰h/Uh‰h0M
U_word_being_completedquUa.ifacqvhUbos.chdir("/Volumes/HOME/talks/2006-12-waterloo/sage/sage_notebook/worksheets/_/cells/10")
a.name()qwh2U#sage_notebook/worksheets/_/cells/10qxh4U

'sage1'

qyh6‰h7Kh!h#h8hAh&‰h9‰ub(hoqz}q{(h*Ufor i in range(5):
    print iq|hU!
q}h-hh.‰h‰h/Uh0Mh‰hUxos.chdir("/Volumes/HOME/talks/2006-12-waterloo/sage/sage_notebook/worksheets/_/cells/11")
for i in range(5):
    print iq~h2U#sage_notebook/worksheets/_/cells/11qh4U
0
1
2
3
4

q€h6‰h7Kh!h#h8hAh&‰h9‰ub(hoq}q‚(h*Uh-hh.‰h/Uh0Mh2U#sage_notebook/worksheets/_/cells/12qƒh4Uh6‰h7Kh8hAh9‰ubeU_Worksheet__synchroq„KU_Worksheet__comp_is_runningq…‰U_Worksheet__dirq†Usage_notebook/worksheets/_q‡U_Worksheet__attachedqˆ}q‰U_Worksheet__queueqŠ]q‹U_Worksheet__next_idqŒM
U_Worksheet__passcryptqˆU_Worksheet__nameqŽUU_Worksheet__saltqU1165187731.576083qU_Worksheet__notebookq‘hU_Worksheet__idq’KU_Worksheet__next_block_idq“KU_Worksheet__systemq”NU_Worksheet__passcodeq•U
11G3BJNEUV/Pkq–ubUqsieveq—(hoq˜}q™(U_Worksheet__filenameqšUqsieveq›U_Worksheet__cellsqœ]q((hoqž}qŸ(U	_Cell__inq U/n = next_prime(10^32)*next_prime(10^33)
print nq¡U_Cell__introspect_htmlq¢U!
q£U_Cell__worksheetq¤h˜U_Cell__completionsq¥‰U_Cell__introspectq¦‰U_Cell__out_htmlq§UU
_Cell__outq¨UE
100000000000000000000000000000055100000000000000000000000000002989

q©U	_Cell__idqªM`U_Cell__is_htmlq«‰U_before_preparseq¬Uƒos.chdir("/Users/was/talks/2007-01-05-msr/sage_notebook/worksheets/qsieve/cells/0")
n = next_prime(10^32)*next_prime(10^33)
print nq­U
_Cell__dirq®U'sage_notebook/worksheets/qsieve/cells/0q¯U_word_being_completedq°Uqsiq±Uhas_new_outputq²‰U_Cell__versionq³KU_Cell__sageq´h#U_Cell__typeqµh%U_Cell__timeq¶‰U_Cell__interruptedq·‰ub(hoq¸}q¹(h Utime factor(n)   qºh¢U!
q»h¤h˜h¥‰h¦‰h§UhªM`h«‰h¬Uˆos.chdir("/Users/was/talks/2007-01-05-msr/sage_notebook/worksheets/qsieve/cells/1")
__SAGE_t__=cputime()
__SAGE_w__=walltime()
factor(n)q¼h®U'sage_notebook/worksheets/qsieve/cells/1q½h¨Up
100000000000000000000000000000049 * 1000000000000000000000000000000061
CPU time: 64.23 s,  Wall time: 87.90 s

q¾h²‰h³Kh´h#hµh%h¶ˆh·‰ub(hoq¿}qÀ(h U+F, t = qsieve(n, time=True)
print F
print tqÁh¢U!
qÂh¤h˜h¥‰h¦‰h§Uh¨Ux
[100000000000000000000000000000049, 1000000000000000000000000000000061]
80.95 real        45.56 user         0.49 sys

qÃhªM`h«‰h¬Uos.chdir("/Users/was/talks/2007-01-05-msr/sage_notebook/worksheets/qsieve/cells/2")
F, t = qsieve(n, time=True)
print F
print tqÄh®U'sage_notebook/worksheets/qsieve/cells/2qÅh°UqsiqÆh²‰h³Kh´h#hµh%h¶‰h·‰ub(hoqÇ}qÈ(h U%q = qsieve(n, time=True, block=False)qÉh¢U!
qÊh¤h˜h¥‰h¦‰h§UhªM`h«‰h¬Uyos.chdir("/Users/was/talks/2007-01-05-msr/sage_notebook/worksheets/qsieve/cells/3")
q = qsieve(n, time=True, block=False)qËh®U'sage_notebook/worksheets/qsieve/cells/3qÌh¨U

qÍh²‰h³Kh´h#hµh%h¶‰h·‰ub(hoqÎ}qÏ(h Uqh¢U!
qÐh¤h˜h¥‰h¦‰h§Uh¨U
([], '')

qÑhªM`h«‰h¬UUos.chdir("/Users/was/talks/2007-01-05-msr/sage_notebook/worksheets/qsieve/cells/4")
qqÒh®U'sage_notebook/worksheets/qsieve/cells/4qÓh°Uq.cpuqÔh²‰h³Kh´h#hµh%h¶‰h·‰ub(hoqÕ}qÖ(h U2+2q×h¢U!
qØh¤h˜h¥‰h¦‰h§UhªM`h«‰h¬UWos.chdir("/Users/was/talks/2007-01-05-msr/sage_notebook/worksheets/qsieve/cells/5")
2+2qÙh®U'sage_notebook/worksheets/qsieve/cells/5qÚh¨U
4

qÛh²‰h³Kh´h#hµh%h¶‰h·‰ub(hoqÜ}qÝ(h U
print q.log()qÞh¢U!
qßh¤h˜h¥‰h¦‰h§Uh¨T”	
Input number to factor [ >=40 decimal digits]: 100000000000000000000000000000055100000000000000000000000000002989



100 relations, 9 partials.
1260 curves.
200 relations, 15 partials.
2520 curves.
300 relations, 25 partials.
400 relations, 38 partials.
3780 curves.
500 relations, 46 partials.
600 relations, 55 partials.
5040 curves.
700 relations, 61 partials.
6300 curves.
800 relations, 70 partials.
900 relations, 81 partials.
7560 curves.
1000 relations, 90 partials.
8820 curves.
1100 relations, 96 partials.
1200 relations, 106 partials.
10080 curves.
1300 relations, 109 partials.
11340 curves.
1400 relations, 121 partials.
1500 relations, 135 partials.
12600 curves.
1600 relations, 151 partials.
13860 curves.
1700 relations, 162 partials.
15120 curves.
1800 relations, 172 partials.
1900 relations, 181 partials.
16380 curves.
2000 relations, 194 partials.
17640 curves.
2100 relations, 203 partials.
2200 relations, 213 partials.
18900 curves.
2300 relations, 225 partials.
20160 curves.
2400 relations, 237 partials.
2500 relations, 247 partials.
21420 curves.
2600 relations, 255 partials.
22680 curves.
2700 relations, 273 partials.
2800 relations, 280 partials.
23940 curves.
2900 relations, 298 partials.
25200 curves.
3000 relations, 307 partials.
3100 relations, 318 partials.
26460 curves.
3200 relations, 324 partials.
27720 curves.
3300 relations, 334 partials.
3400 relations, 340 partials.
28980 curves.
3500 relations, 350 partials.
3600 relations, 363 partials.
30240 curves.
3700 relations, 374 partials.
31500 curves.
3800 relations, 389 partials.
32760 curves.
3900 relations, 398 partials.
4000 relations, 415 partials.
34020 curves.
4100 relations, 429 partials.
4200 relations, 438 partials.
35280 curves.
4300 relations, 453 partials.
36540 curves.
4400 relations, 461 partials.
4500 relations, 473 partials.
37800 curves.
4600 relations, 486 partials.
39060 curves.
4700 relations, 498 partials.
40320 curves.
4800 relations, 507 partials.
4900 relations, 526 partials.
41580 curves.
5000 relations, 540 partials.
42840 curves.
5100 relations, 555 partials.
5200 relations, 565 partials.
44100 curves.
5300 relations, 574 partials.
45360 curves.
5400 relations, 587 partials.
5500 relations, 597 partials.
46620 curves.
5600 relations, 604 partials.
47880 curves.
5700 relations, 614 partials.
5800 relations, 623 partials.
49140 curves.
5900 relations, 634 partials.
50400 curves.
6000 relations, 645 partials.


qàhªM`h«‰h¬Uaos.chdir("/Users/was/talks/2007-01-05-msr/sage_notebook/worksheets/qsieve/cells/6")
print q.log()qáh®U'sage_notebook/worksheets/qsieve/cells/6qâh°Uq.qãh²‰h³Kh´h#hµh%h¶‰h·‰ub(hoqä}qå(h Uq.quit()qæh¢U!
qçh¤h˜h¥‰h¦‰h§UhªM`h«‰h¬U\os.chdir("/Users/was/talks/2007-01-05-msr/sage_notebook/worksheets/qsieve/cells/7")
q.quit()qèh®U'sage_notebook/worksheets/qsieve/cells/7qéh¨U

qêh²‰h³Kh´h#hµh%h¶‰h·‰ub(hoqë}qì(h Uh¤h˜h¥‰h§UhªM`h®U'sage_notebook/worksheets/qsieve/cells/8qíh¨Uh²‰h³Khµh%h·‰ubeU_Worksheet__synchroqîK1U_Worksheet__nameqïUqsieveqðU_Worksheet__attachedqñ}qòU_Worksheet__saltqóU1168019690.935546qôU_Worksheet__dirqõUsage_notebook/worksheets/qsieveqöU_Worksheet__queueq÷]qøU_Worksheet__next_idqùM	`U_Worksheet__passcryptqúˆU_Worksheet__comp_is_runningqû‰U_Worksheet__passcodeqüU
11G3BJNEUV/PkqýU_Worksheet__notebookqþhU_Worksheet__idqÿKU_Worksheet__next_block_idrKU_Worksheet__systemrNubUgraphr(hor}r(h	Ugraphrh
]r((hor}r(U	_Cell__inr	U*time b = bernoulli(10000, algorithm='gap')r
U_Cell__introspect_htmlrU!
rU_Cell__worksheetr
jU_Cell__completionsr‰U_Cell__introspectr‰U_Cell__out_htmlrUU	_Cell__idrM0U_Cell__is_htmlr‰U_before_preparserU®os.chdir("/Volumes/HOME/talks/2006-12-waterloo/sage/sage_notebook/worksheets/graph/cells/14")
__SAGE_t__=cputime()
__SAGE_w__=walltime()
b = bernoulli(10000, algorithm='gap')rU
_Cell__dirrU'sage_notebook/worksheets/graph/cells/14rU_word_being_completedrUbernrUhas_new_outputr‰U_Cell__versionrKU_Cell__sagerNU_Cell__interruptedrˆU_Cell__typerUwraprU_Cell__timerˆU
_Cell__outr Uub(hor!}r"(j	U+time b = bernoulli(10000, algorithm='pari')r#jU!
r$j
jj‰j‰jUjM0j‰jU¯os.chdir("/Volumes/HOME/talks/2006-12-waterloo/sage/sage_notebook/worksheets/graph/cells/15")
__SAGE_t__=cputime()
__SAGE_w__=walltime()
b = bernoulli(10000, algorithm='pari')r%jU'sage_notebook/worksheets/graph/cells/15r&j U'
CPU time: 0.24 s,  Wall time: 0.26 s

r'j‰jKjh#jjjˆj‰ub(hor(}r)(j	UE = EllipticCurve('389a')r*jU!
r+j
jj‰j‰jUjM
0j‰jUwos.chdir("/Volumes/HOME/talks/2006-12-waterloo/sage/sage_notebook/worksheets/graph/cells/10")
E = EllipticCurve('389a')r,jU'sage_notebook/worksheets/graph/cells/10r-jUEllr.j‰jKjh#j‰jjj‰j U

r/ub(hor0}r1(j	UL = E.Lseries_zeros(5)r2jU!
r3j
jj‰j‰jUjM0j‰jUtos.chdir("/Volumes/HOME/talks/2006-12-waterloo/sage/sage_notebook/worksheets/graph/cells/11")
L = E.Lseries_zeros(5)r4jU'sage_notebook/worksheets/graph/cells/11r5jU
E.Lseries_zerr6j‰jKjh#j‰jjj‰j U

r7ub(hor8}r9(j	ULjU!
r:j
jj‰j‰jUjM0j‰jU_os.chdir("/Volumes/HOME/talks/2006-12-waterloo/sage/sage_notebook/worksheets/graph/cells/12")
Lr;jU'sage_notebook/worksheets/graph/cells/12r<j UA
[0.000000000, 0.000000000, 2.87609907, 4.41689608, 5.79340263]

r=j‰jKjh#jjj‰j‰ub(hor>}r?(hUg = graphs.PetersenGraph()r@U_Cell__introspect_htmlrAU!
rBhjh‰U_Cell__introspectrC‰hUhM0U_Cell__is_htmlrD‰U_before_preparserEUwos.chdir("/Volumes/HOME/talks/2006-12-waterloo/sage/sage_notebook/worksheets/graph/cells/0")
g = graphs.PetersenGraph()rFhU&sage_notebook/worksheets/graph/cells/0rGU_word_being_completedrHU
graphs.PetrIh‰h KU_Cell__sagerJh#h'‰h$UwraprKU_Cell__timerL‰hU

rMub(horN}rO(hUshow(g)rPjAU!
rQhjh‰jC‰hU>rRhM0jD‰jEUdos.chdir("/Volumes/HOME/talks/2006-12-waterloo/sage/sage_notebook/worksheets/graph/cells/1")
show(g)rShU&sage_notebook/worksheets/graph/cells/1rThU

rUh‰h KjJh#h$jKjL‰h'‰ub(horV}rW(hU(g = graphs.CompleteBipartiteGraph(5,100)rXhU!
rYhjh‰h‰hUh‰hM0huUgraphs.CompleteBirZhU…os.chdir("/Volumes/HOME/talks/2006-12-waterloo/sage/sage_notebook/worksheets/graph/cells/2")
g = graphs.CompleteBipartiteGraph(5,100)r[hU&sage_notebook/worksheets/graph/cells/2r\hU

r]h‰h Kh!h#h$jh&‰h'‰ub(hor^}r_(h*Ugraphs.CompleteBipartiteGraphr`hT?
File: /Volumes/HOME/s/local/lib/python2.5/site-packages/sage/graphs/graph_database.py
Source Code (starting at line 566):
    def CompleteBipartiteGraph(self, n1, n2):
        """
        Returns a Complete Bipartite Graph sized n1+n2, with each of the
        nodes [0,(n1-1)] connected to each of the nodes [n1,(n2-1)] and
        vice versa.
        
        A Complete Bipartite Graph is a graph with its vertices partitioned
        into two groups, V1 and V2.  Each v in V1 is connected to every v
        in V2, and vice versa.  
        
        PLOTTING:
        Upon construction, the position dictionary is filled to override
        the spring-layout algorithm. By convention, each complete bipartite
        graph will be displayed with the first n1 nodes on the top row (at
        y=1) from left to right.  The remaining n2 nodes appear at y=0,
        also from left to right.  The shorter row (partition with fewer
        nodes) is stretched to the same length as the longer row, unless
        the shorter row has 1 node; in which case it is centered.  The x
        values in the plot are in domain [0,max{n1,n2}].  
                
        In the Complete Bipartite graph, there is a visual difference in
        using the spring-layout algorithm vs. the position dictionary used
        in this constructor.  The position dictionary flattens the graph
        and separates the partitioned nodes, making it clear which nodes
        an edge is connected to.  The Complete Bipartite graph plotted with
        the spring-layout algorithm tends to center the nodes in n1 (see
        spring_med in examples below), thus overlapping its nodes and edges,
        making it typically hard to decipher.
        
        Filling the position dictionary in advance adds O(n) to the
        constructor.  Feel free to race the constructors below in the
        examples section.  The much larger difference is the time added by
        the spring-layout algorithm when plotting.  (Also shown in the
        example below).  The spring model is typically described as O(n^3),
        as appears to be the case in the NetworkX source code.
        
        EXAMPLES:
            # The following examples require NetworkX (to use default)
            sage: import networkx as NX
            
            # Compare the constructors (results will vary)
            sage.: time n = NX.complete_bipartite_graph(389,157); spring_big = Graph(n)
            # CPU time: 9.28 s,  Wall time: 11.02 s
            sage.: time posdict_big = graphs.CompleteBipartiteGraph(389,157)
            # CPU time: 10.72 s,  Wall time: 13.84 s

            # Compare the plotting speeds (results will vary)
            sage: n = NX.complete_bipartite_graph(11,17)
            sage: spring_med = Graph(n)
            sage: posdict_med = graphs.CompleteBipartiteGraph(11,17)
            # Notice here how the spring-layout tends to center the nodes of n1
            sage.: time spring_med.show()
            # CPU time: 3.84 s,  Wall time: 4.49 s
            sage.: time posdict_med.show()
            # CPU time: 0.96 s,  Wall time: 1.14 s

            # View many Complete Bipartite graphs with a SAGE Graphics Array            
            
            # With this constructor (i.e., the position dictionary filled)
            sage: g = []
            sage: j = []
            sage: for i in range(9):
            ...    k = graphs.CompleteBipartiteGraph(i+1,4)
            ...    g.append(k)
            ...
            sage: for i in range(3):
            ...    n = []
            ...    for m in range(3):
            ...        n.append(g[3*i + m].plot(node_size=50, with_labels=False))
            ...    j.append(n)
            ...
            sage: G = sage.plot.plot.GraphicsArray(j)
            sage.: G.show()

            # Compared to plotting with the spring-layout algorithm
            sage: g = []
            sage: j = []
            sage: for i in range(9):
            ...    spr = NX.complete_bipartite_graph(i+1,4)       
            ...    k = Graph(spr)
            ...    g.append(k)
            ...
            sage: for i in range(3):
            ...    n = []
            ...    for m in range(3):
            ...        n.append(g[3*i + m].plot(node_size=50, with_labels=False))
            ...    j.append(n)
            ...
            sage: G = sage.plot.plot.GraphicsArray(j)
            sage.: G.show()
        """
        pos_dict = {}
        c1 = 1 # scaling factor for top row
        c2 = 1 # scaling factor for bottom row
        c3 = 0 # pad to center if top row has 1 node
        c4 = 0 # pad to center if bottom row has 1 node
        if n1 > n2:
            if n2 == 1:
                c4 = (n1-1)/2
            else:
                c2 = ((n1-1)/(n2-1))
        elif n2 > n1:
            if n1 == 1:
                c3 = (n2-1)/2
            else:
                c1 = ((n2-1)/(n1-1))
        for i in range(n1):
            x = c1*i + c3
            y = 1
            pos_dict[i] = [x,y]
        for i in range(n1+n2)[n1:]:
            x = c2*(i-n1) + c4
            y = 0
            pos_dict[i] = [x,y]
        G = NX.complete_bipartite_graph(n1,n2)
        return graph.Graph(G, pos=pos_dict, name="Complete bipartite graph on %d vertices"%(n1+n2))
rah-jh.‰h]rb(Ugraphs.CompleteBipartiteGraph??rcUeh/U>rdh‰h0M0huUgraphs.CompleteBirehU|os.chdir("/Volumes/HOME/talks/2006-12-waterloo/sage/sage_notebook/worksheets/graph/cells/3") graphs.CompleteBipartiteGraph??rfh2U&sage_notebook/worksheets/graph/cells/3rgh4U rhh6‰h7Kh!h#h8hAh&‰h9‰ub(h ori}rj(j Ugj U!
rkj
jj‰j‰jUjM0j‰jU^os.chdir("/Volumes/HOME/talks/2006-12-waterloo/sage/sage_notebook/worksheets/graph/cells/5")
grljU&sage_notebook/worksheets/graph/cells/5rmj UK
Complete bipartite graph on 105 vertices: a simple graph on 105 vertices

rnj‰jKjh#jjj‰j‰ub(horo}rp(h*Ug.save('mygraph')rqjU!
rrh-jh.‰j‰h/Uh0M0j‰jUnos.chdir("/Volumes/HOME/talks/2006-12-waterloo/sage/sage_notebook/worksheets/graph/cells/4")
g.save('mygraph')rsh2U&sage_notebook/worksheets/graph/cells/4rth4U

ruh6‰h7Kjh#h8jj‰h9‰ub(horv}rw(j	U5P = plot(sin, 0, 10, rgbcolor=(0,0.5,0), thickness=5)rxjU!
ryj
jj‰j‰jUjM0j‰jU’os.chdir("/Volumes/HOME/talks/2006-12-waterloo/sage/sage_notebook/worksheets/graph/cells/6")
P = plot(sin, 0, 10, rgbcolor=(0,0.5,0), thickness=5)rzjU&sage_notebook/worksheets/graph/cells/6r{j U

r|j‰jKjh#jjj‰j‰ub(hor}}r~(j	UPjU!
rj
jj‰j‰jUjM0j‰jU^os.chdir("/Volumes/HOME/talks/2006-12-waterloo/sage/sage_notebook/worksheets/graph/cells/7")
Pr€jU&sage_notebook/worksheets/graph/cells/7rj U5
Graphics object consisting of 1 graphics primitive

r‚j‰jKjh#jjj‰j‰ub(horƒ}r„(j	UP.show()r…jU!
r†j
jj‰j‰jU>r‡jM0j‰jUeos.chdir("/Volumes/HOME/talks/2006-12-waterloo/sage/sage_notebook/worksheets/graph/cells/8")
P.show()rˆjU&sage_notebook/worksheets/graph/cells/8r‰j U

rŠj‰jKjh#jjj‰j‰ub(hor‹}rŒ(j	Uj
jj‰jUjM	0jU&sage_notebook/worksheets/graph/cells/9rj Uj‰jKjjj‰ubeU_Worksheet__synchrorŽKržhj—h‰jC‰hUhM jD‰jEUwos.chdir("/Volumes/HOME/talks/2006-12-waterloo/sage/sage_notebook/worksheets/bernoull_mod/cells/0")
bernoulli_mod_p(37)rŸhU-sage_notebook/worksheets/bernoull_mod/cells/0r jHUbernoulli_mor¡h‰h KU_Cell__sager¢h#h'‰h$jKjL‰hUF
[1, 31, 16, 15, 16, 4, 17, 32, 22, 31, 15, 15, 17, 12, 29, 2, 0, 2]

r£ub(hor¤}r¥(U	_Cell__inr¦U)time v=bernoulli_mod_p(next_prime(50000))r§U_Cell__introspect_htmlr¨U!
r©U_Cell__worksheetrªj—U_Cell__completionsr«‰U_Cell__introspectr¬‰U_Cell__out_htmlr­UU	_Cell__idr®M U_Cell__is_htmlr¯‰U_before_preparser°U³os.chdir("/Volumes/HOME/talks/2006-12-waterloo/sage/sage_notebook/worksheets/bernoull_mod/cells/1")
__SAGE_t__=cputime()
__SAGE_w__=walltime()
v=bernoulli_mod_p(next_prime(50000))r±U
_Cell__dirr²U-sage_notebook/worksheets/bernoull_mod/cells/1r³U_word_being_completedr´Ubernoulli_morµUhas_new_outputr¶‰U_Cell__versionr·Kj¢h#U_Cell__interruptedr¸‰U_Cell__typer¹jKU_Cell__timerºˆU
_Cell__outr»U'
CPU time: 0.44 s,  Wall time: 0.47 s

r¼ub(hor½}r¾(j¦Ulen(v)r¿j¨U!
rÀjªj—j«‰j¬‰j­Uj®M j¯‰j°Ujos.chdir("/Volumes/HOME/talks/2006-12-waterloo/sage/sage_notebook/worksheets/bernoull_mod/cells/2")
len(v)rÁj²U-sage_notebook/worksheets/bernoull_mod/cells/2rÂj»U
25010

rÃj¶‰j·Kj¢h#j¹jKjº‰j¸‰ub(horÄ}rÅ(j¦Ujªj—j«‰j­Uj®M j²U-sage_notebook/worksheets/bernoull_mod/cells/4rÆj»Uj¶‰j·Kj¹jKj¸‰ubejŽK
h…‰hˆ}rÇh†U%sage_notebook/worksheets/bernoull_modrÈhŠ]rÉhŒM hˆhŽUbernoull_modrÊhU1165187752.734722rËh‘hh’Kj”Kh”Nh•U
11G3BJNEUV/PkrÌubUfactorrÍ(horÎ}rÏ(U_Worksheet__filenamerÐUfactorrÑU_Worksheet__cellsrÒ]rÓ((csage.server.notebook.cell
TextCell
rÔorÕ}rÖ(U_TextCell__worksheetr×jÎU_TextCell__textrØUú

Factor Tree Worksheet

This worksheet uses the SAGE Notebook to illustrate integer factorization as a product of primes using the ``factor trees'' that students learn about in school.rÙU _TextCell__idrÚM@ub(h orÛ}rÜ(h TÙ%hideall #auto # The source code to draw factorization trees... import random def factor_tree(n, font=10): rows = [] v = [(n,None,0)] ftree(rows, v, 0, factor(n)) return draw_ftree(rows, font) def ftree(rows, v, i, F): if len(v) > 0: # add a row to g at the ith level. rows.append(v) w = [] for i in range(len(v)): k, _,_ = v[i] if k is None or is_prime(k): w.append((None,None,None)) else: d = random.choice(divisors(k)[1:-1]) w.append((d,k,i)) e = k//d if e == 1: w.append((None,None)) else: w.append((e,k,i)) if len(w) > len(v): ftree(rows, w, i+1, F) def draw_ftree(rows,font): g = Graphics() for i in range(len(rows)): cur = rows[i] for j in range(len(cur)): e, f, k = cur[j] if not e is None: if is_prime(e): c = (1,0,0) else: c = (0,0,.4) g += text(str(e), (j*2-len(cur),-i), fontsize=font, rgbcolor=c) if not k is None and not f is None: g += line([(j*2-len(cur),-i), (k*2-len(rows[i-1]),-i+1)], alpha=0.4, thickness=1) return g def factor_trees(n, cols=4, rows=3, font=10): return graphics_array([[factor_tree(n,font) for _ in range(cols)] for _ in range(rows)])rÝh¢U!
rÞh¤jÎh¥‰h§UhªM@h«‰h¬TYos.chdir("/Users/was/talks/2007-01-05-msr/sage_notebook/worksheets/factor/cells/21")
__SAGE_t__=cputime()
__SAGE_w__=walltime()
%hideall
#auto

# The source code to draw factorization trees...

import random

def factor_tree(n, font=10):
    rows = []
    v = [(n,None,0)]
    ftree(rows, v, 0, factor(n))
    return draw_ftree(rows, font)

def ftree(rows, v, i, F):
    if len(v) > 0:
        # add a row to g at the ith level. 
        rows.append(v)
    w = []
    for i in range(len(v)):
        k, _,_ = v[i]
        if k is None or is_prime(k):
            w.append((None,None,None))
        else:
            d = random.choice(divisors(k)[1:-1])
            w.append((d,k,i))
            e = k//d
            if e == 1:
                w.append((None,None))
            else:
                w.append((e,k,i))
    if len(w) > len(v):
        ftree(rows, w, i+1, F)


def draw_ftree(rows,font):
    g = Graphics()
    for i in range(len(rows)):
        cur = rows[i]
        for j in range(len(cur)):
            e, f, k = cur[j]
            if not e is None:
                if is_prime(e):
                     c = (1,0,0)
                else:
                     c = (0,0,.4)
                g += text(str(e), (j*2-len(cur),-i), fontsize=font, rgbcolor=c)
                if not k is None and not f is None:
                    g += line([(j*2-len(cur),-i), (k*2-len(rows[i-1]),-i+1)], alpha=0.4, thickness=1) 
    return g

def factor_trees(n, cols=4, rows=3, font=10):
    return graphics_array([[factor_tree(n,font) for _ in range(cols)] for _ in range(rows)])rßh®U(sage_notebook/worksheets/factor/cells/21ràh¨U'
CPU time: 0.00 s,  Wall time: 0.00 s

ráh²‰h³Kh´h#h·‰ub(jÔorâ}rã(j×jÎjØU
räjÚM@ub(h orå}ræ(h UVF = factor_trees(300000000, rows=1, cols=1, font=8) F.show(axes=False, figsize=[10,6])rçh¢U!
rèh¤jÎh¥‰h¦‰h§U@réhªM@h¶‰h«‰h¬U«os.chdir("/Users/was/talks/2007-01-05-msr/sage_notebook/worksheets/factor/cells/23")
F = factor_trees(300000000, rows=1, cols=1, font=8)
F.show(axes=False, figsize=[10,6])rêh®U(sage_notebook/worksheets/factor/cells/23rëh¨U

rìh²‰h³Kh´h#hµh%h·‰ub(horí}rî(h UbF = factor_tree(prod(primes(40)))
F.show(xmin=-3,xmax=7,ymin=-5,ymax=0.5,figsize=[8,2],axes=False)rïh¢U!
rðh¤jÎh¥‰h¦‰h§U@rñhªM@h¶‰h«‰h¬U·os.chdir("/Users/was/talks/2007-01-05-msr/sage_notebook/worksheets/factor/cells/24")
F = factor_tree(prod(primes(40)))
F.show(xmin=-3,xmax=7,ymin=-5,ymax=0.5,figsize=[8,2],axes=False)ròh®U(sage_notebook/worksheets/factor/cells/24róh¨U

rôh²‰h³Kh´h#hµh%h·‰ub(horõ}rö(h U9show(factor_trees(1200,cols=3,rows=3),axes=False,dpi=100)r÷h¢U!
røh¤jÎh¥‰h¦‰h§U@rùhªM@h¶‰h«‰h¬UŽos.chdir("/Users/was/talks/2007-01-05-msr/sage_notebook/worksheets/factor/cells/25")
show(factor_trees(1200,cols=3,rows=3),axes=False,dpi=100)rúh®U(sage_notebook/worksheets/factor/cells/25rûh¨U

rüh²‰h³Kh´h#hµh%h·‰ub(horý}rþ(h Uh¤jÎh¥‰h§UhªM@h®U(sage_notebook/worksheets/factor/cells/26rÿh¨Uh²‰h³Khµh%h·‰ubeU_Worksheet__synchrorKU_Worksheet__comp_is_runningr‰U_Worksheet__attachedr}rU_Worksheet__dirrUsage_notebook/worksheets/factorrU_Worksheet__queuer]rU_Worksheet__next_idrM@U_Worksheet__passcryptr	ˆU_Worksheet__namer
UfactorrU_Worksheet__saltrU1165225547.833440r
U_Worksheet__notebookrhU_Worksheet__idrKU_Worksheet__next_block_idrKU_Worksheet__systemrNU_Worksheet__passcoderU
11G3BJNEUV/PkrubUtestr(hor}r(U_Worksheet__filenamerUtestrU_Worksheet__cellsr]r(hor}r(j¦Ujªjj«‰j­Uj®MPj²U%sage_notebook/worksheets/test/cells/0rj»Uj¶‰j·Kj¹jKj¸‰ubaU_Worksheet__namerUtestrU_Worksheet__attachedr }r!U_Worksheet__dirr"Usage_notebook/worksheets/testr#U_Worksheet__queuer$]r%U_Worksheet__next_idr&MPU_Worksheet__passcryptr'ˆU_Worksheet__comp_is_runningr(‰U_Worksheet__saltr)U1165250401.859302r*U_Worksheet__notebookr+hU_Worksheet__idr,KU_Worksheet__systemr-NU_Worksheet__passcoder.U
11G3BJNEUV/Pkr/ubuU_Notebook__historyr0]r1(U¨# Worksheet 'graph' (2006-12-03 at 15:35)
sage: g = graphs.StarGraph()
Traceback (most recent call last):
...
TypeError: StarGraph() takes exactly 2 arguments (1 given)r2UK# Worksheet 'graph' (2006-12-03 at 15:35)
sage: g = graphs.PetersenGraph()
r3U8# Worksheet 'graph' (2006-12-03 at 15:35)
sage: show(g)
r4T¶# Worksheet 'factor' (2006-12-04 at 01:46)
sage: %hide
sage: print "CLICK ABOVE FOR THE SOURCE CODE"
sage: # The source code to draw factorization trees...
sage: import random
sage: def factor_tree(n, font=10):
...    rows = []
...    v = [(n,None,0)]
...    ftree(rows, v, 0, factor(n))
...    return draw_ftree(rows, font)
...
sage: def ftree(rows, v, i, F):
...    if len(v) > 0:
...        # add a row to g at the ith level. 
...        rows.append(v)
...    w = []
...    for i in range(len(v)):
...        k, _,_ = v[i]
...        if k is None or is_prime(k):
...            w.append((None,None,None))
...        else:
...            d = random.choice(divisors(k)[1:-1])
...            w.append((d,k,i))
...            e = k//d
...            if e == 1:
...                w.append((None,None))
...            else:
...                w.append((e,k,i))
...    if len(w) > len(v):
...        ftree(rows, w, i+1, F)
...
sage: def draw_ftree(rows,font):
...    g = Graphics()
...    for i in range(len(rows)):
...        cur = rows[i]
...        for j in range(len(cur)):
...            e, f, k = cur[j]
...            if not e is None:
...                if is_prime(e):
...                     c = (1,0,0)
...                else:
...                     c = (0,0,.4)
...                g += text(str(e), (j*2-len(cur),-i), fontsize=font, rgbcolor=c)
...                if not k is None and not f is None:
...                    g += line([(j*2-len(cur),-i), (k*2-len(rows[i-1]),-i+1)], alpha=0.4, thickness=0.4) 
...    return g
...
sage: def factor_trees(n, cols=4, rows=3, font=10):
...    return graphics_array([[factor_tree(n,font) for _ in range(cols)] for _ in range(rows)])
CLICK ABOVE FOR THE SOURCE CODEr5UŽ# Worksheet 'factor' (2006-12-04 at 01:46)
sage: F = factor_trees(300000000, rows=1, cols=1, font=8)
sage: F.show(axes=False, figsize=[10,6])
r6Uš# Worksheet 'factor' (2006-12-04 at 01:46)
sage: F = factor_tree(prod(primes(30)))
sage: F.show(xmin=-3,xmax=7,ymin=-5,ymax=0.5,figsize=[8,2],axes=False)
r7Uk# Worksheet 'factor' (2006-12-04 at 01:46)
sage: show(factor_trees(1200,cols=3,rows=3),axes=False,dpi=100)
r8U,# Worksheet 'factor' (2006-12-04 at 01:46)

r9U,# Worksheet 'factor' (2006-12-04 at 01:46)

r:UK# Worksheet 'graph' (2006-12-04 at 08:38)
sage: g = graphs.PetersenGraph()
r;U8# Worksheet 'graph' (2006-12-04 at 08:38)
sage: show(g)
r<UK# Worksheet 'graph' (2006-12-04 at 08:38)
sage: g = graphs.PetersenGraph()
r=U8# Worksheet 'graph' (2006-12-04 at 08:38)
sage: show(g)
r>T´# Worksheet 'factor' (2006-12-04 at 08:38)
sage: %hide
sage: print "CLICK ABOVE FOR THE SOURCE CODE"
sage: # The source code to draw factorization trees...
sage: import random
sage: def factor_tree(n, font=10):
...    rows = []
...    v = [(n,None,0)]
...    ftree(rows, v, 0, factor(n))
...    return draw_ftree(rows, font)
...
sage: def ftree(rows, v, i, F):
...    if len(v) > 0:
...        # add a row to g at the ith level. 
...        rows.append(v)
...    w = []
...    for i in range(len(v)):
...        k, _,_ = v[i]
...        if k is None or is_prime(k):
...            w.append((None,None,None))
...        else:
...            d = random.choice(divisors(k)[1:-1])
...            w.append((d,k,i))
...            e = k//d
...            if e == 1:
...                w.append((None,None))
...            else:
...                w.append((e,k,i))
...    if len(w) > len(v):
...        ftree(rows, w, i+1, F)
...
sage: def draw_ftree(rows,font):
...    g = Graphics()
...    for i in range(len(rows)):
...        cur = rows[i]
...        for j in range(len(cur)):
...            e, f, k = cur[j]
...            if not e is None:
...                if is_prime(e):
...                     c = (1,0,0)
...                else:
...                     c = (0,0,.4)
...                g += text(str(e), (j*2-len(cur),-i), fontsize=font, rgbcolor=c)
...                if not k is None and not f is None:
...                    g += line([(j*2-len(cur),-i), (k*2-len(rows[i-1]),-i+1)], alpha=0.4, thickness=1) 
...    return g
...
sage: def factor_trees(n, cols=4, rows=3, font=10):
...    return graphics_array([[factor_tree(n,font) for _ in range(cols)] for _ in range(rows)])
CLICK ABOVE FOR THE SOURCE CODEr?UŽ# Worksheet 'factor' (2006-12-04 at 08:38)
sage: F = factor_trees(300000000, rows=1, cols=1, font=8)
sage: F.show(axes=False, figsize=[10,6])
r@Uš# Worksheet 'factor' (2006-12-04 at 08:38)
sage: F = factor_tree(prod(primes(30)))
sage: F.show(xmin=-3,xmax=7,ymin=-5,ymax=0.5,figsize=[8,2],axes=False)
rAUš# Worksheet 'factor' (2006-12-04 at 08:39)
sage: F = factor_tree(prod(primes(40)))
sage: F.show(xmin=-3,xmax=7,ymin=-5,ymax=0.5,figsize=[8,2],axes=False)
rBUš# Worksheet 'factor' (2006-12-04 at 08:39)
sage: F = factor_tree(prod(primes(40)))
sage: F.show(xmin=-3,xmax=7,ymin=-5,ymax=0.5,figsize=[8,2],axes=False)
rCUŽ# Worksheet 'bernoull_mod' (2006-12-04 at 08:43)
sage: bernoulli_mod_p(37)
[1, 31, 16, 15, 16, 4, 17, 32, 22, 31, 15, 15, 17, 12, 29, 2, 0, 2]rDU„# Worksheet 'bernoull_mod' (2006-12-04 at 08:43)
sage: time v=bernoulli_mod_p(next_prime(5000))
CPU time: 0.03 s,  Wall time: 0.07 srEUB# Worksheet 'bernoull_mod' (2006-12-04 at 08:44)
sage: len(v)
2501rFT# Worksheet 'bernoull_mod' (2006-12-04 at 08:44)
sage: v
[1, 834, 2835, 2978, 2835, 3108, 2285, 835, 4888, 2243, 4580, 2458, 756, 496, 1317, 2489, 3478, 4680, 3187, 2262, 2324, 4505, 4911, 2558, 4545, 905, 8, 377, 3917, 4639, 3600, 117, 2518, 229, 2505, 1860, 1165, 3868, 1535, 3272, 3541, 2424, 2600, 4612, 4701, 2935, 709, 2363, 2790, 1538, 1367, 1803, 2090, 4292, 3056, 2545, 2590, 1578, 1042, 3748, 1051, 3430, 125, 3684, 1830, 3890, 3630, 2170, 4351, 50, 2361, 3842, 1265, 2985, 3199, 11, 4662, 2269, 833, 2141, ...rGU…# Worksheet 'bernoull_mod' (2006-12-04 at 08:44)
sage: time v=bernoulli_mod_p(next_prime(50000))
CPU time: 0.44 s,  Wall time: 0.47 srHUC# Worksheet 'bernoull_mod' (2006-12-04 at 08:44)
sage: len(v)
25010rIUŽ# Worksheet 'bernoull_mod' (2006-12-04 at 08:44)
sage: bernoulli_mod_p(37)
[1, 31, 16, 15, 16, 4, 17, 32, 22, 31, 15, 15, 17, 12, 29, 2, 0, 2]rJU0# Worksheet '' (2006-12-04 at 13:44)
sage: 2+3
5rKU0# Worksheet '' (2006-12-04 at 13:44)
sage: 2+5
7rLUP# Worksheet '' (2006-12-04 at 13:44)
sage: E = magma.EllipticCurve([1,2,3,4,5])
rMU‚# Worksheet '' (2006-12-04 at 13:44)
sage: E
Elliptic Curve defined by y^2 + x*y + 3*y = x^3 + 2*x^2 + 4*x + 5 over Rational FieldrNU_# Worksheet '' (2006-12-04 at 13:44)
sage: type(E)
rOU?# Worksheet '' (2006-12-04 at 13:45)
sage: E.name()
'_sage_[7]'rPU5# Worksheet '' (2006-12-04 at 13:45)
sage: E.Rank()
1rQU<# Worksheet '' (2006-12-04 at 13:45)
sage: a = maple('2+3')
rRU.# Worksheet '' (2006-12-04 at 13:45)
sage: a
5rSU=# Worksheet '' (2006-12-04 at 13:46)
sage: a = maple('2007')
rTU1# Worksheet '' (2006-12-04 at 13:46)
sage: a
2007rUUF# Worksheet '' (2006-12-04 at 13:46)
sage: a.ifactor()
``(3)^2*``(223)rVU;# Worksheet '' (2006-12-04 at 13:46)
sage: a.name()
'sage1'rWUV# Worksheet '' (2006-12-04 at 13:47)
sage: for i in range(5):
...    print i
0
1
2
3
4rXUY# Worksheet 'graph' (2006-12-04 at 14:09)
sage: g = graphs.CompleteBipartiteGraph(5,100)
rYU8# Worksheet 'graph' (2006-12-04 at 14:09)
sage: show(g)
rZU{# Worksheet 'graph' (2006-12-04 at 14:16)
sage: g
Traceback (most recent call last):
...
NameError: name 'g' is not definedr[UY# Worksheet 'graph' (2006-12-04 at 14:16)
sage: g = graphs.CompleteBipartiteGraph(5,100)
r\Uz# Worksheet 'graph' (2006-12-04 at 14:16)
sage: g
Complete bipartite graph on 105 vertices: a simple graph on 105 verticesr]UB# Worksheet 'graph' (2006-12-04 at 14:16)
sage: g.save('mygraph')
r^UW# Worksheet 'graph' (2006-12-04 at 14:18)
sage: P = plot(sin, 0, 10, rgbcolor=(1,1,0))
r_Ud# Worksheet 'graph' (2006-12-04 at 14:18)
sage: P
Graphics object consisting of 1 graphics primitiver`U9# Worksheet 'graph' (2006-12-04 at 14:18)
sage: P.show()
raUY# Worksheet 'graph' (2006-12-04 at 14:18)
sage: P = plot(sin, 0, 10, rgbcolor=(0,0.5,0))
rbUd# Worksheet 'graph' (2006-12-04 at 14:18)
sage: P
Graphics object consisting of 1 graphics primitivercU9# Worksheet 'graph' (2006-12-04 at 14:18)
sage: P.show()
rdUf# Worksheet 'graph' (2006-12-04 at 14:18)
sage: P = plot(sin, 0, 10, rgbcolor=(0,0.5,0), thickness=5)
reUd# Worksheet 'graph' (2006-12-04 at 14:18)
sage: P
Graphics object consisting of 1 graphics primitiverfU9# Worksheet 'graph' (2006-12-04 at 14:18)
sage: P.show()
rgU™# Worksheet 'graph' (2006-12-04 at 14:25)
sage: bernoulli(100)
-94598037819122125295227433069493721872702841533066936133385696204311395415197247711/33330rhUJ# Worksheet 'graph' (2006-12-04 at 14:25)
sage: E = EllipticCurve('389a')
riUG# Worksheet 'graph' (2006-12-04 at 14:25)
sage: L = E.Lseries_zeros(2)
rjUL# Worksheet 'graph' (2006-12-04 at 14:25)
sage: L
[0.000000000, 0.000000000]rkUG# Worksheet 'graph' (2006-12-04 at 14:25)
sage: L = E.Lseries_zeros(5)
rlUp# Worksheet 'graph' (2006-12-04 at 14:26)
sage: L
[0.000000000, 0.000000000, 2.87609907, 4.41689608, 5.79340263]rmU~# Worksheet 'graph' (2006-12-04 at 14:27)
sage: time b = bernoulli(1000, algorithm='gap')
CPU time: 0.06 s,  Wall time: 4.59 srnU~# Worksheet 'graph' (2006-12-04 at 14:27)
sage: time b = bernoulli(1000, algorithm='gap')
CPU time: 0.01 s,  Wall time: 0.01 sroU~# Worksheet 'graph' (2006-12-04 at 14:27)
sage: time b = bernoulli(1002, algorithm='gap')
CPU time: 0.02 s,  Wall time: 0.03 srpU€# Worksheet 'graph' (2006-12-04 at 14:28)
sage: time b = bernoulli(10000, algorithm='pari')
CPU time: 0.44 s,  Wall time: 0.48 srqU€# Worksheet 'graph' (2006-12-04 at 14:28)
sage: time b = bernoulli(10000, algorithm='pari')
CPU time: 0.24 s,  Wall time: 0.27 srrU€# Worksheet 'graph' (2006-12-04 at 14:28)
sage: time b = bernoulli(10000, algorithm='pari')
CPU time: 0.24 s,  Wall time: 0.26 srsU€# Worksheet 'graph' (2006-12-04 at 14:28)
sage: time b = bernoulli(10000, algorithm='pari')
CPU time: 0.24 s,  Wall time: 0.26 srtU0# Worksheet '' (2007-01-05 at 09:53)
sage: 2+3
5ruU0# Worksheet '' (2007-01-05 at 09:53)
sage: 2+5
7rvTþ# Worksheet 'factor' (2007-01-05 at 09:54)
sage: %hideall
sage: #auto
sage: 
sage: # The source code to draw factorization trees...
sage: 
sage: import random
sage: 
sage: def factor_tree(n, font=10):
...    rows = []
...    v = [(n,None,0)]
...    ftree(rows, v, 0, factor(n))
...    return draw_ftree(rows, font)
...
sage: 
sage: def ftree(rows, v, i, F):
...    if len(v) > 0:
...        # add a row to g at the ith level. 
...        rows.append(v)
...    w = []
...    for i in range(len(v)):
...        k, _,_ = v[i]
...        if k is None or is_prime(k):
...            w.append((None,None,None))
...        else:
...            d = random.choice(divisors(k)[1:-1])
...            w.append((d,k,i))
...            e = k//d
...            if e == 1:
...                w.append((None,None))
...            else:
...                w.append((e,k,i))
...    if len(w) > len(v):
...        ftree(rows, w, i+1, F)
...
sage: 
sage: 
sage: def draw_ftree(rows,font):
...    g = Graphics()
...    for i in range(len(rows)):
...        cur = rows[i]
...        for j in range(len(cur)):
...            e, f, k = cur[j]
...            if not e is None:
...                if is_prime(e):
...                     c = (1,0,0)
...                else:
...                     c = (0,0,.4)
...                g += text(str(e), (j*2-len(cur),-i), fontsize=font, rgbcolor=c)
...                if not k is None and not f is None:
...                    g += line([(j*2-len(cur),-i), (k*2-len(rows[i-1]),-i+1)], alpha=0.4, thickness=1) 
...    return g
...
sage: 
sage: def factor_trees(n, cols=4, rows=3, font=10):
...    return graphics_array([[factor_tree(n,font) for _ in range(cols)] for _ in range(rows)])
CPU time: 0.00 s,  Wall time: 0.00 srwUŽ# Worksheet 'factor' (2007-01-05 at 09:54)
sage: F = factor_trees(300000000, rows=1, cols=1, font=8)
sage: F.show(axes=False, figsize=[10,6])
rxUš# Worksheet 'factor' (2007-01-05 at 09:54)
sage: F = factor_tree(prod(primes(40)))
sage: F.show(xmin=-3,xmax=7,ymin=-5,ymax=0.5,figsize=[8,2],axes=False)
ryUk# Worksheet 'factor' (2007-01-05 at 09:54)
sage: show(factor_trees(1200,cols=3,rows=3),axes=False,dpi=100)
rzUY# Worksheet 'qsieve' (2007-01-05 at 09:55)
sage: n = next_prime(10^21)*next_prime(10^22)
r{U•# Worksheet 'qsieve' (2007-01-05 at 09:55)
sage: time factor(n)
1000000000000000000117 * 10000000000000000000009
CPU time: 0.53 s,  Wall time: 0.78 sr|Uœ# Worksheet 'qsieve' (2007-01-05 at 09:55)
sage: time qsieve(n)
([1000000000000000000117, 10000000000000000000009], '')
CPU time: 0.00 s,  Wall time: 0.53 sr}UY# Worksheet 'qsieve' (2007-01-05 at 09:55)
sage: n = next_prime(10^22)*next_prime(10^24)
r~U˜# Worksheet 'qsieve' (2007-01-05 at 09:55)
sage: time factor(n)
10000000000000000000009 * 1000000000000000000000007
CPU time: 0.95 s,  Wall time: 1.51 srUŸ# Worksheet 'qsieve' (2007-01-05 at 09:55)
sage: time qsieve(n)
([10000000000000000000009, 1000000000000000000000007], '')
CPU time: 0.01 s,  Wall time: 0.81 sr€UY# Worksheet 'qsieve' (2007-01-05 at 09:55)
sage: n = next_prime(10^24)*next_prime(10^26)
rUœ# Worksheet 'qsieve' (2007-01-05 at 09:55)
sage: time factor(n)
1000000000000000000000007 * 100000000000000000000000067
CPU time: 2.30 s,  Wall time: 3.65 sr‚U£# Worksheet 'qsieve' (2007-01-05 at 09:55)
sage: time qsieve(n)
([1000000000000000000000007, 100000000000000000000000067], '')
CPU time: 0.01 s,  Wall time: 2.08 srƒU°# Worksheet 'qsieve' (2007-01-05 at 09:55)
sage: qsieve(n, time=True)
([1000000000000000000000007, 100000000000000000000000067], '2.55 real         1.46 user         0.01 sys')r„UY# Worksheet 'qsieve' (2007-01-05 at 09:56)
sage: n = next_prime(10^25)*next_prime(10^27)
r…Už# Worksheet 'qsieve' (2007-01-05 at 09:56)
sage: time factor(n)
10000000000000000000000013 * 1000000000000000000000000103
CPU time: 3.60 s,  Wall time: 5.46 sr†Uœ# Worksheet 'qsieve' (2007-01-05 at 09:56)
sage: n = next_prime(10^25)*next_prime(10^27)
sage: print n
10000000000000000000000014030000000000000000000001339r‡U²# Worksheet 'qsieve' (2007-01-05 at 09:56)
sage: qsieve(n, time=True)
([10000000000000000000000013, 1000000000000000000000000103], '2.71 real         2.06 user         0.01 sys')rˆUÐ# Worksheet 'qsieve' (2007-01-05 at 09:56)
sage: F, t = qsieve(n, time=True)
sage: print F
sage: print t
[10000000000000000000000013, 1000000000000000000000000103]
2.73 real         2.06 user         0.01 sysr‰Už# Worksheet 'qsieve' (2007-01-05 at 09:56)
sage: n = next_prime(10^26)*next_prime(10^28)
sage: print n
1000000000000000000000000703100000000000000000000022177rŠU # Worksheet 'qsieve' (2007-01-05 at 09:56)
sage: time factor(n)
100000000000000000000000067 * 10000000000000000000000000331
CPU time: 5.33 s,  Wall time: 8.05 sr‹UÒ# Worksheet 'qsieve' (2007-01-05 at 09:56)
sage: F, t = qsieve(n, time=True)
sage: print F
sage: print t
[100000000000000000000000067, 10000000000000000000000000331]
4.96 real         3.46 user         0.02 sysrŒU¡# Worksheet 'qsieve' (2007-01-05 at 09:58)
sage: n = next_prime(10^27)*next_prime(10^30)
sage: print n
1000000000000000000000000103057000000000000000000000005871rU¥# Worksheet 'qsieve' (2007-01-05 at 09:58)
sage: time factor(n)
1000000000000000000000000103 * 1000000000000000000000000000057
CPU time: 12.82 s,  Wall time: 19.37 srŽUÖ# Worksheet 'qsieve' (2007-01-05 at 09:59)
sage: F, t = qsieve(n, time=True)
sage: print F
sage: print t
[1000000000000000000000000103, 1000000000000000000000000000057]
12.09 real         8.88 user         0.06 sysrU¤# Worksheet 'qsieve' (2007-01-05 at 09:59)
sage: n = next_prime(10^29)*next_prime(10^31)
sage: print n
1000000000000000000000000003193300000000000000000000000010527rU¨# Worksheet 'qsieve' (2007-01-05 at 10:00)
sage: time factor(n)
100000000000000000000000000319 * 10000000000000000000000000000033
CPU time: 27.28 s,  Wall time: 41.15 sr‘UÙ# Worksheet 'qsieve' (2007-01-05 at 10:00)
sage: F, t = qsieve(n, time=True)
sage: print F
sage: print t
[100000000000000000000000000319, 10000000000000000000000000000033]
22.45 real        15.22 user         0.11 sysr’U¬# Worksheet 'qsieve' (2007-01-05 at 10:19)
sage: n = next_prime(10^33)*next_prime(10^35)
sage: print n
100000000000000000000000000000006169000000000000000000000000000004209r“U©# Worksheet 'qsieve' (2007-01-05 at 10:21)
sage: n = next_prime(10^32)*next_prime(10^33)
sage: print n
100000000000000000000000000000055100000000000000000000000000002989r”UÞ# Worksheet 'qsieve' (2007-01-05 at 10:22)
sage: F, t = qsieve(n, time=True)
sage: print F
sage: print t
[100000000000000000000000000000049, 1000000000000000000000000000000061]
80.95 real        45.56 user         0.49 sysr•U­# Worksheet 'qsieve' (2007-01-05 at 10:24)
sage: time factor(n)
100000000000000000000000000000049 * 1000000000000000000000000000000061
CPU time: 64.23 s,  Wall time: 87.90 sr–UW# Worksheet 'qsieve' (2007-01-05 at 10:41)
sage: q = qsieve(n, time=True, block=False)
r—UL# Worksheet 'qsieve' (2007-01-05 at 10:41)
sage: q
Proper factors so far: []r˜U?# Worksheet 'qsieve' (2007-01-05 at 10:41)
sage: q.done()
Falser™U6# Worksheet 'qsieve' (2007-01-05 at 10:41)
sage: 2+2
4ršT# Worksheet 'qsieve' (2007-01-05 at 10:41)
sage: q.log()
'Input number to factor [ >=40 decimal digits]: 100000000000000000000000000000055100000000000000000000000000002989\r\n\r\n\r\n\r\n100 relations, 9 partials.\r\n1260 curves.\r\n200 relations, 15 partials.\r\n2520 curves.\r\n300 relations, 25 partials.\r\n400 relations, 38 partials.\r\n3780 curves.\r\n500 relations, 46 partials.\r\n600 relations, 55 partials.\r\n5040 curves.\r\n700 relations, 61 partials.\r\n6300 curves.\r\n800 relations, 70 partials.\r\n900...r›T# Worksheet 'qsieve' (2007-01-05 at 10:41)
sage: print q.log()
Input number to factor [ >=40 decimal digits]: 100000000000000000000000000000055100000000000000000000000000002989



100 relations, 9 partials.
1260 curves.
200 relations, 15 partials.
2520 curves.
300 relations, 25 partials.
400 relations, 38 partials.
3780 curves.
500 relations, 46 partials.
600 relations, 55 partials.
5040 curves.
700 relations, 61 partials.
6300 curves.
800 relations, 70 partials.
900 relations, 81 partials.
7560 curves.
1000 relations...rœU?# Worksheet 'qsieve' (2007-01-05 at 10:45)
sage: q.done()
FalserU?# Worksheet 'qsieve' (2007-01-05 at 10:45)
sage: q.done()
FalseržUL# Worksheet 'qsieve' (2007-01-05 at 10:45)
sage: q
Proper factors so far: []rŸT# Worksheet 'qsieve' (2007-01-05 at 10:46)
sage: print q.log()
Input number to factor [ >=40 decimal digits]: 100000000000000000000000000000055100000000000000000000000000002989



100 relations, 9 partials.
1260 curves.
200 relations, 15 partials.
2520 curves.
300 relations, 25 partials.
400 relations, 38 partials.
3780 curves.
500 relations, 46 partials.
600 relations, 55 partials.
5040 curves.
700 relations, 61 partials.
6300 curves.
800 relations, 70 partials.
900 relations, 81 partials.
7560 curves.
1000 relations...r T# Worksheet 'qsieve' (2007-01-05 at 10:46)
sage: print q.log()
Input number to factor [ >=40 decimal digits]: 100000000000000000000000000000055100000000000000000000000000002989



100 relations, 9 partials.
1260 curves.
200 relations, 15 partials.
2520 curves.
300 relations, 25 partials.
400 relations, 38 partials.
3780 curves.
500 relations, 46 partials.
600 relations, 55 partials.
5040 curves.
700 relations, 61 partials.
6300 curves.
800 relations, 70 partials.
900 relations, 81 partials.
7560 curves.
1000 relations...r¡U¡# Worksheet 'qsieve' (2007-01-05 at 10:46)
sage: q.stop()
Traceback (most recent call last):
...
AttributeError: qsieve_nonblock instance has no attribute 'stop'r¢U²# Worksheet 'qsieve' (2007-01-05 at 10:46)
sage: q.quit()
Traceback (most recent call last):
...
pexpect.ExceptionPexpect: close() could not terminate the child using terminate()r£U:# Worksheet 'qsieve' (2007-01-05 at 10:46)
sage: q.quit()
r¤U;# Worksheet 'qsieve' (2007-01-05 at 10:46)
sage: q
([], '')r¥eU_Notebook__defaultsr¦}r§(Ucell_output_colorr¨U#0000EEr©Umax_history_lengthrªMôUcell_input_colorr«U#0000000r¬Uword_wrap_colsr­KPuU_Notebook__worksheet_dirr®Usage_notebook/worksheetsr¯U_Notebook__history_countr°KU_Notebook__log_serverr±‰U_Notebook__filenamer²Usage_notebook/nb.sobjr³U_Notebook__default_worksheetr´(horµ}r¶(h	U	_scratch_r·h
]r¸(hor¹}rº(hUhjµh‰h§UhKhU*sage_notebook/worksheets/_scratch_/cells/0r»hUh‰h Khµh%h'‰ubah…‰hñ}r¼h†U"sage_notebook/worksheets/_scratch_r½hŠ]r¾hŒKh‘hhˆhŽU	_scratch_r¿hU1165187727.127047rÀh•U
11G3BJNEUV/PkrÁh’Kh”NubU_Notebook__server_logrÂ]rÃU_Notebook__next_worksheet_idrÄKU_Notebook__kill_idlerÅKU_Notebook__systemrÆNU_Notebook__show_debugrljU_Notebook__dirrÈU
sage_notebookrÉU_Notebook__authrÊU:U_Notebook__colorrËNU_Notebook__object_dirrÌUsage_notebook/objectsrÍU_default_filenamerÎU5/Users/was/talks/2007-01-05-msr/sage_notebook/nb.sobjrÏU_Notebook__splashpagerЈub.