code: public static final boolean sign(byte[] v, byte[] h, byte[] x, byte[] s) {
  		/* v = (x - h) s  mod q  */
  		byte[] tmp1=new byte[65];
  		byte[] tmp2=new byte[33];
  		int w;
  		int i;
  		for (i = 0; i < 32; i++)
  			v[i] = 0;
  		i = mula_small(v, x, 0, h, 32, -1);
  		mula_small(v, v, 0, ORDER, 32, (15-v[31])/16);
  		mula32(tmp1, v, s, 32, 1);
  		divmod(tmp2, tmp1, 64, ORDER, 32);
  		for (w = 0, i = 0; i < 32; i++)
  			w |= v[i] = tmp1[i];
  		return w != 0;
  	}
docs: /* Signature generation primitive, calculates (x-h)s mod q
  v  [out] signature value
  h  [in]  signature hash (of message, signature pub key, and context data)
  x  [in]  signature private key
  s  [in]  private key for signing
  returns true on success, false on failure (use different x or h)