1
/******************************************************
3
* zexy - implementation file
5
* copyleft (c) IOhannes m zm�lnig
7
* 1999:forum::f�r::uml�ute:2004
9
* institute of electronic music and acoustics (iem)
11
******************************************************
13
* license: GNU General Public License v.2
15
******************************************************/
17
/* get the n-th prime number */
22
static t_class *prime_class;
24
typedef struct _prime {
29
static void prime_float(t_prime *x, t_float f)
33
unsigned int max_divisor;
34
unsigned int divisor=1;
37
outlet_float(x->x_obj.ob_outlet, 0.0);
42
outlet_float(x->x_obj.ob_outlet, (t_float)(i==2));
46
max_divisor = sqrt(f)+1;
48
while ((divisor+=2)<max_divisor)
50
outlet_float(x->x_obj.ob_outlet, 0.0);
54
outlet_float(x->x_obj.ob_outlet, 1.0);
57
static void *prime_new(void)
59
t_prime *x = (t_prime *)pd_new(prime_class);
61
outlet_new(&x->x_obj, &s_float);
66
static void prime_help(t_prime*x)
68
post("\n%c prime\t\t:: test whether a given number is prime", HEARTSYMBOL);
72
void prime_setup(void) {
73
prime_class = class_new(gensym("prime"),
74
(t_newmethod)prime_new,
78
class_addfloat(prime_class, prime_float);
79
class_addmethod(prime_class, (t_method)prime_help, gensym("help"), A_NULL);
80
zexy_register("prime");