anchor.diff:  np.save( cls, clusters )
   }*
   
  -deftask evaluate( state1( File ) : cls( File ) ) in python *{
  +deftask reevaluate( state1( File ) : cls( File ) ) in python *{
   
   import numpy as np
   
  
positive.code:   conv = []
  }*
  
  k = 4;
  N = 40;
  
  X   = gen_data( N: N, k: k );
  mu0 = init_state( data: X, k: k );
  
  clusters = cluster( data: X, state: mu0 );
  mu1      = evaluate( cls: clusters );
  conv     = has_converged( state0: mu0, state: mu1 );
  
  mu1 conv;
negative.code: np.save( state1, newmu )
  }*
  
  deftask has_converged( <conv> : old( File ) new( File ) ) in python *{
  
  import numpy as np
  
  oldmu = np.load( old )
  mu    = np.load( new )
  
  if set([tuple(a) for a in mu]) == set([tuple(a) for a in oldmu]):
    conv = ["true"]
  