Beispiel #1
0
 /* this function simply checks to see if the user has changed the order,
     and if so, updates the matrix */
 void
 new_rot_order()
 {
   if ((rotorder_var = lookup_global(ROTORDER_NAME)) < 0)
   {
     rotorder_var = add_global(ROTORDER_NAME);
     globals(rotorder_var)->value.real = 4.;
     globals(rotorder_var)->flags = ORDINARY_PARAM | RECALC_PARAMETER | ALWAYS_RECALC;
   }
   rotorder = (int)globals(rotorder_var)->value.real;
   if ((genpower_var = lookup_global(GENPOWER_NAME)) < 0)
   {
     genpower_var = add_global(GENPOWER_NAME);
     globals(genpower_var)->value.real = 1.;
     globals(genpower_var)->flags = ORDINARY_PARAM | RECALC_PARAMETER | ALWAYS_RECALC;
   }
   genpower = (int)globals(genpower_var)->value.real;

   rotmat[0][0] = rotmat[1][1] = cos(2*M_PI*genpower/rotorder);
   rotmat[1][0] = -(rotmat[0][1] = sin(2*M_PI*genpower/rotorder));
 }
Beispiel #2
0
 /* called by recalc() even if not using symmetry, hence don't set user var */
 void reset_rot_order()
 {
   if (lookup_global(ROTORDER_NAME) >= 0)
   new_rot_order();
 }
oop defineGlobal(oop name, oop kind, oop value) {
  binary *s = (binary *) symbol_name(name);
  box *b = lookup_global(s->data, oop_len(s));
  setbox(b, value);
  return b;
}