Code Search for Developers
 
 
  

erathostenes_set.py from matplotlib at Krugle


Show erathostenes_set.py syntax highlighted

#!/usr/bin/env python
"""Simple example implementations of the Sieve of Erathostenes."""

__author__ = "Fernando Perez <Fernando.Perez@colorado.edu>"

import sys
import math

import numpy as N

def sieve(nmax):
    """Return a list of prime numbers up to nmax, using Erathostenes' sieve.

    This is a more efficient implementation than the naive one: we combine a
    set with an auxiliary list (kept sorted)."""

    # Sanity checks
    assert nmax>1, "nmax must be > 1"
    if nmax == 2: return [2]
    
    # For nmax>3, do full sieve
    primes_head = [2]
    first = 3

    # The primes tail will be kept both as a set and as a sorted list
    primes_tail_lst = range(first,nmax+1,2)
    primes_tail_set = set(primes_tail_lst)

    # optimize a couple of name lookups from loops
    tail_remove = primes_tail_set.remove
    head_append = primes_head.append
    sqrt = math.sqrt
	
    # Now do the actual sieve
    while first <= round(sqrt(primes_tail_lst[-1])):
	# Move the first leftover prime from the set to the head list
	first = primes_tail_lst[0]
	tail_remove(first)  # remove it from the set
	head_append(first) # and store it in the head list

	# Now, remove from the primes tail all non-primes.  For us to be able
	# to break as soon as a key is not found, it's crucial that the tail
	# list is always sorted.
	for next_candidate in primes_tail_lst:
	    try:
		tail_remove(first*next_candidate)
	    except KeyError:
		break
            
	# Build a new sorted tail list with the leftover keys
	primes_tail_lst = list(primes_tail_set)
	primes_tail_lst.sort()

    return primes_head + primes_tail_lst




See more files for this project here

matplotlib

Matplotlib is a pure python plotting library with the goal of making\r\npublication quality plots using a syntax familiar to matlab users. \r\nThe library uses Numeric for handling large\r\ndata sets and supports a variety of output backends

Project homepage: http://sourceforge.net/projects/matplotlib
Programming language(s): C,C++,Python
License: other

  data/
    key_stats/
      CROX_key_stats.html
      GE_key_stats.html
      GOOG_key_stats.html
      INTC_key_stats.html
      MSFT_key_stats.html
      WMT_key_stats.html
      YHOO_key_stats.html
    HISTORY.gz
    ge.csv
    hsales.dat
    monthly_sunspots.dat
    moonlanding.jpg
    nm560.dat
    synapse_data.dat
    synapse_times.dat
  extras/
    fft_demo.py
    spec_interp.py
    steinman_interp.py
    weave_examples.py
  faces/
    data_test/
      face10tn.pcx
      face11tn.pcx
      face12tn.pcx
      face13tn.pcx
      face14tn.pcx
      face15tn.pcx
      face16tn.pcx
      face17tn.pcx
      face18tn.pcx
      face19tn.pcx
      face1tn.pcx
      face20tn.pcx
      face21tn.pcx
      face22tn.pcx
      face23tn.pcx
      face24tn.pcx
      face25tn.pcx
      face26tn.pcx
      face27tn.pcx
      face28tn.pcx
      face29tn.pcx
      face2tn.pcx
      face30tn.pcx
      face3tn.pcx
      face4tn.pcx
      face5tn.pcx
      face6tn.pcx
      face7tn.pcx
      face8tn.pcx
      face9tn.pcx
    data_train/
      face10n.pcx
      face11n.pcx
      face12n.pcx
      face13n.pcx
      face14n.pcx
      face15n.pcx
      face16n.pcx
      face17n.pcx
      face18n.pcx
      face19n.pcx
      face1n.pcx
      face20n.pcx
      face21n.pcx
      face22n.pcx
      face23n.pcx
      face24n.pcx
      face25n.pcx
      face26n.pcx
      face27n.pcx
      face28n.pcx
      face29n.pcx
      face2n.pcx
      face30n.pcx
      face31n.pcx
      face32n.pcx
      face33n.pcx
      face34n.pcx
      face35n.pcx
      face36n.pcx
      face37n.pcx
      face38n.pcx
      face39n.pcx
      face3n.pcx
      face40n.pcx
      face41n.pcx
      face42n.pcx
      face43n.pcx
      face44n.pcx
      face45n.pcx
      face46n.pcx
      face47n.pcx
      face48n.pcx
      face49n.pcx
      face4n.pcx
      face50n.pcx
      face51n.pcx
      face52n.pcx
      face53n.pcx
      face54n.pcx
      face55n.pcx
      face56n.pcx
      face57n.pcx
      face58n.pcx
      face59n.pcx
      face5n.pcx
      face60n.pcx
      face61n.pcx
      face62n.pcx
      face63n.pcx
      face64n.pcx
      face65n.pcx
      face6n.pcx
      face7n.pcx
      face8n.pcx
      face9n.pcx
    faces.py
    fmatch.py
    imatch.py
    imatch2.py
    imtools.py
    test_imatch.py
  logistic/
    sethna_ori/
    __init__.py
    exercise01.py
    exercise02.py
    maplib.py
    maplib.pyc
  numpy_wrap/
    f2py/
    pyrex/
    swig/
  schrodinger/
    Schrodinger_FDTD.pdf
    schrod_fdtd.py
  skel/
    faces/
    fortran_wrap/
    distributions_skel.py
    erathostenes_skel.py
    fft_imdenoise_skel.py
    fit_synapse_skel.py
    fitting_skel.py
    montecarlo_pi_skel.py
    polyroots1d_skel.py
    qsort_skel.py
    quad_newton_skel.py
    recarray_demo_skel.py
    regress_demo_skel.py
    scrape_key_stats_skel.py
    shoot_skel.py
    spline_demo_skel.py
    stats_descriptives_skel.py
    stats_distributions_skel.py
    trapezoid_skel.py
    wallis_pi_skel.py
    wordfreqs_skel.py
  visual/
    bounce.py
    shoot.py
    shoot_t.py
    toroid_drag.py
  BeautifulSoup.py
  __init__.py
  bessel.py
  distributions.py
  erathostenes.py
  erathostenes_fperez.py
  erathostenes_list.py
  erathostenes_set.py
  fft_imdenoise.py
  fit_synapse.py
  fitting.py
  getbibtex.py
  lsys.py
  montecarlo_pi.py
  numpy-blitz_1000.png
  numpy-blitz_300.png
  numpy-blitz_500.png
  numpy_slicing.py
  polyroots1d.py
  qsort.py
  quad_newton.py
  recarray_demo.py
  regress.py
  regress_demo.py
  scrape_key_stats.py
  spline_demo.py
  stats_descriptives.py
  stats_distributions.py
  test.ipy
  trapezoid.py
  wallis_pi.py
  weave_blitz.py
  weave_blitz0.py
  weave_blitz_comp.png
  weave_examples_simple.py
  weave_exercises.py
  wordfreqs.py