#copyright Igor Rivin, 2005, all rights reserved.
#little utility functions, a64() requires numarray.

from numarray import *
import numarray.linear_algebra as la
import math

def nless1subs(seq):
	return [seq[:i] + seq[(i+1):] for i in xrange(len(seq))]

def factorial(n):
    nums = range(n+1)
    return reduce(lambda x, y: x * y, nums[1:])

def a64(thelist):
    return asarray(thelist, type = Float64)

def outerprod(func, l1, l2):
    return [[func(i, j) for i in l1] for j in l2]
