Example #1
0
int test_kernel_left_pluq(size_t m, size_t n) {
  mzd_t* A = mzd_init(m, n);
  mzd_randomize(A);
  
  mzd_t *Acopy = mzd_copy(NULL, A);

  size_t r = mzd_echelonize_m4ri(A, 0, 0);
  printf("kernel_left m: %4zu, n: %4zu, r: %4zu ",m, n, r);
  mzd_free(Acopy);
  Acopy = mzd_copy(NULL, A);
    
  mzd_t *X = mzd_kernel_left_pluq(A, 0);
  if (X == NULL) {
    printf("passed\n");
    mzd_free(A);
    mzd_free(Acopy);
    return 0;
  }

  mzd_t *Z = mzd_mul(NULL, Acopy, X, 0);
  
  int status = 1 - mzd_is_zero(Z);
  
  if (!status)
    printf("passed\n");
  else
    printf("FAILED\n");

  mzd_free(A);
  mzd_free(Acopy);
  mzd_free(X);
  mzd_free(Z);
  return status;
}
Example #2
0
/*
 * Class:     m4rjni_Mzd
 * Method:    mzd_kernel_left_pluq
 * Signature: (JI)J
 */
JNIEXPORT jlong JNICALL Java_m4rjni_Mzd_mzd_1kernel_1left_1pluq(JNIEnv *env, jobject obj, jlong ptr, jint cutoff) {
  mzd_t *M = (mzd_t*)ptr;
  if (M==NULL) return 0;
  return (jlong) mzd_kernel_left_pluq(M,cutoff);
}