Beispiel #1
0
CAMLprim value ml_gsl_multiroot_fdfsolver_get_state(value S, value ox, value of, 
					   value oj, value odx, value unit)
{
  gsl_multiroot_fdfsolver *s=GSLMULTIROOTFDFSOLVER_VAL(S);
  if(Is_block(ox)) {
      value x=Unoption(ox);
      _DECLARE_VECTOR(x);
      _CONVERT_VECTOR(x);
      gsl_vector_memcpy(&v_x,  s->x);
  }
  if(Is_block(of)) {
      value f=Unoption(of);
      _DECLARE_VECTOR(f);
      _CONVERT_VECTOR(f);
      gsl_vector_memcpy(&v_f,  s->f);
  }
  if(Is_block(odx)) {
      value dx=Unoption(odx);
      _DECLARE_VECTOR(dx);
      _CONVERT_VECTOR(dx);
      gsl_vector_memcpy(&v_dx,  s->dx);
  }
  if(Is_block(oj)) {
      value j=Unoption(oj);
      _DECLARE_MATRIX(j);
      _CONVERT_MATRIX(j);
      gsl_matrix_memcpy(&m_j,  s->J);
  }
  return Val_unit;
}
Beispiel #2
0
CAMLprim value ml_gsl_linalg_cholesky_decomp(value A)
{
  _DECLARE_MATRIX(A);
  _CONVERT_MATRIX(A);
  gsl_linalg_cholesky_decomp(&m_A);
  return Val_unit;
}
Beispiel #3
0
CAMLprim value FUNCTION(ml_gsl_matrix,transpose)(value A)
{
  _DECLARE_MATRIX(A);
  _CONVERT_MATRIX(A);
  FUNCTION(gsl_matrix,transpose)(&m_A);
  return Val_unit;
}
Beispiel #4
0
CAMLprim value FUNCTION(ml_gsl_matrix,swap_columns)(value A, value i, value j)
{
  _DECLARE_MATRIX(A);
  _CONVERT_MATRIX(A);
  FUNCTION(gsl_matrix,swap_columns)(&m_A, Int_val(i), Int_val(j));
  return Val_unit;
}
Beispiel #5
0
CAMLprim value FUNCTION(ml_gsl_matrix,isnull)(value A)
{
  int r;
  _DECLARE_MATRIX(A);
  _CONVERT_MATRIX(A);
  r = FUNCTION(gsl_matrix,isnull)(&m_A);
  return Val_bool(r);
}
Beispiel #6
0
CAMLprim value ml_gsl_linalg_LQ_vecQT(value LQ, value TAU, value V)
{
  _DECLARE_MATRIX(LQ);
  _DECLARE_VECTOR2(V,TAU);
  _CONVERT_MATRIX(LQ);
  _CONVERT_VECTOR2(V,TAU);
  gsl_linalg_LQ_vecQT(&m_LQ, &v_TAU, &v_V);
  return Val_unit;
}
Beispiel #7
0
CAMLprim value ml_gsl_linalg_L_solve_T(value L, value B, value X)
{
  _DECLARE_MATRIX(L);
  _DECLARE_VECTOR2(B,X);
  _CONVERT_MATRIX(L);
  _CONVERT_VECTOR2(B,X);
  gsl_linalg_L_solve_T(&m_L, &v_B, &v_X);
  return Val_unit;
}
Beispiel #8
0
CAMLprim value ml_gsl_linalg_LQ_Lsvx_T(value LQ, value X)
{
  _DECLARE_MATRIX(LQ);
  _DECLARE_VECTOR(X);
  _CONVERT_MATRIX(LQ);
  _CONVERT_VECTOR(X);
  gsl_linalg_LQ_Lsvx_T(&m_LQ, &v_X);
  return Val_unit;
}
Beispiel #9
0
CAMLprim value ml_gsl_linalg_LQ_solve_T(value LQ, value TAU, value B, value X)
{
  _DECLARE_MATRIX(LQ);
  _DECLARE_VECTOR3(B,X,TAU);
  _CONVERT_MATRIX(LQ);
  _CONVERT_VECTOR3(B,X,TAU);
  gsl_linalg_LQ_solve_T(&m_LQ, &v_TAU, &v_B, &v_X);
  return Val_unit;
}
Beispiel #10
0
CAMLprim value ml_gsl_linalg_LU_decomp(value A, value P)
{
  int sign;
  GSL_PERMUT_OF_BIGARRAY(P);
  _DECLARE_MATRIX(A);
  _CONVERT_MATRIX(A);
  gsl_linalg_LU_decomp(&m_A, &perm_P, &sign);
  return Val_int(sign);
}
Beispiel #11
0
CAMLprim value ml_gsl_linalg_QR_Rsvx(value QR, value X)
{
  _DECLARE_MATRIX(QR);
  _DECLARE_VECTOR(X);
  _CONVERT_MATRIX(QR);
  _CONVERT_VECTOR(X);
  gsl_linalg_QR_Rsvx(&m_QR, &v_X);
  return Val_unit;
}
Beispiel #12
0
CAMLprim value ml_gsl_linalg_QR_Rsolve(value QR, value B, value X)
{
  _DECLARE_MATRIX(QR);
  _DECLARE_VECTOR2(B,X);
  _CONVERT_MATRIX(QR);
  _CONVERT_VECTOR2(B,X);
  gsl_linalg_QR_Rsolve(&m_QR, &v_B, &v_X);
  return Val_unit;
}
Beispiel #13
0
CAMLprim value ml_gsl_linalg_cholesky_svx(value CHO, value X)
{
  _DECLARE_MATRIX(CHO);
  _DECLARE_VECTOR(X);
  _CONVERT_MATRIX(CHO);
  _CONVERT_VECTOR(X);
  gsl_linalg_cholesky_svx(&m_CHO, &v_X);
  return Val_unit;
}
Beispiel #14
0
/* Householder solver */
CAMLprim value ml_gsl_linalg_HH_solve(value A, value B, value X)
{
  _DECLARE_MATRIX(A);
  _DECLARE_VECTOR2(B,X);
  _CONVERT_MATRIX(A);
  _CONVERT_VECTOR2(B,X);
  gsl_linalg_HH_solve(&m_A, &v_B, &v_X);
  return Val_unit;
}
Beispiel #15
0
CAMLprim value ml_gsl_linalg_cholesky_decomp_unit(value CHO, value D)
{
  _DECLARE_MATRIX(CHO);
  _DECLARE_VECTOR(D);
  _CONVERT_MATRIX(CHO);
  _CONVERT_VECTOR(D);
  gsl_linalg_cholesky_decomp_unit(&m_CHO, &v_D);
  return Val_unit;
}
Beispiel #16
0
CAMLprim value FUNCTION(ml_gsl_matrix,add_diagonal)(value A, value X)
{
  _DECLARE_MATRIX(A);
  _DECLARE_BASE_TYPE(X);
  _CONVERT_MATRIX(A);
  _CONVERT_BASE_TYPE(X);
  FUNCTION(gsl_matrix,add_diagonal)(&m_A, conv_X);
  return Val_unit;
}
Beispiel #17
0
CAMLprim value ml_gsl_linalg_HH_svx(value A, value X)
{
  _DECLARE_MATRIX(A);
  _DECLARE_VECTOR(X);
  _CONVERT_MATRIX(A);
  _CONVERT_VECTOR(X);
  gsl_linalg_HH_svx(&m_A, &v_X);
  return Val_unit;
}
Beispiel #18
0
/* Bidiagonalization */
CAMLprim value ml_gsl_linalg_bidiag_decomp(value A, value TAU_U, value TAU_V)
{
  _DECLARE_MATRIX(A);
  _DECLARE_VECTOR2(TAU_U, TAU_V);
  _CONVERT_MATRIX(A);
  _CONVERT_VECTOR2(TAU_U, TAU_V);
  gsl_linalg_bidiag_decomp(&m_A, &v_TAU_U, &v_TAU_V);
  return Val_unit;
}
Beispiel #19
0
CAMLprim value ml_gsl_linalg_bidiag_unpack_B(value A, value DIAG, value SUPERDIAG)
{
  _DECLARE_MATRIX(A);
  _DECLARE_VECTOR2(DIAG, SUPERDIAG);
  _CONVERT_MATRIX(A);
  _CONVERT_VECTOR2(DIAG, SUPERDIAG);
  gsl_linalg_bidiag_unpack_B(&m_A, &v_DIAG, &v_SUPERDIAG);
  return Val_unit;
}
Beispiel #20
0
CAMLprim value ml_gsl_linalg_symmtd_unpack_T(value A, value DIAG, value SUBDIAG)
{
  _DECLARE_MATRIX(A);
  _DECLARE_VECTOR2(DIAG, SUBDIAG);
  _CONVERT_MATRIX(A);
  _CONVERT_VECTOR2(DIAG, SUBDIAG);
  gsl_linalg_symmtd_unpack_T(&m_A, &v_DIAG, &v_SUBDIAG);
  return Val_unit;
}
Beispiel #21
0
/* Tridiagonal Decomposition of Real Symmetric Matrices */
CAMLprim value ml_gsl_linalg_symmtd_decomp(value A, value TAU)
{
  _DECLARE_MATRIX(A);
  _DECLARE_VECTOR(TAU);
  _CONVERT_MATRIX(A);
  _CONVERT_VECTOR(TAU);
  gsl_linalg_symmtd_decomp(&m_A, &v_TAU);
  return Val_unit;
}
Beispiel #22
0
CAMLprim value ml_gsl_linalg_QR_Qvec(value QR, value TAU, value V)
{
  _DECLARE_MATRIX(QR);
  _DECLARE_VECTOR2(TAU, V);
  _CONVERT_MATRIX(QR);
  _CONVERT_VECTOR2(TAU, V);
  gsl_linalg_QR_Qvec(&m_QR, &v_TAU, &v_V);
  return Val_unit;
}
Beispiel #23
0
CAMLprim value ml_gsl_blas_sger(value alpha, value X, value Y, value A)
{
    _DECLARE_MATRIX(A);
    _DECLARE_VECTOR2(X, Y);
    _CONVERT_MATRIX(A);
    _CONVERT_VECTOR2(X, Y);
    gsl_blas_sger(Double_val(alpha), &v_X, &v_Y, &m_A);
    return Val_unit;
}
Beispiel #24
0
CAMLprim value ml_gsl_linalg_QRPT_Rsvx(value QR, value P, value X)
{
  GSL_PERMUT_OF_BIGARRAY(P);
  _DECLARE_MATRIX(QR);
  _DECLARE_VECTOR(X);
  _CONVERT_MATRIX(QR);
  _CONVERT_VECTOR(X);
  gsl_linalg_QRPT_Rsvx(&m_QR, &perm_P, &v_X);
  return Val_unit;
}
Beispiel #25
0
CAMLprim value ml_gsl_linalg_LU_svx(value LU, value P, value X)
{
  GSL_PERMUT_OF_BIGARRAY(P);
  _DECLARE_MATRIX(LU);
  _DECLARE_VECTOR(X);
  _CONVERT_MATRIX(LU);
  _CONVERT_VECTOR(X);
  gsl_linalg_LU_svx(&m_LU, &perm_P, &v_X);
  return Val_unit;
}
Beispiel #26
0
CAMLprim value ml_gsl_multifit_linear_est (value x, value c, value cov)
{
  double y, y_err;
  _DECLARE_VECTOR2(x, c);
  _DECLARE_MATRIX(cov);
  _CONVERT_VECTOR2(x, c);
  _CONVERT_MATRIX(cov);
  gsl_multifit_linear_est (&v_x, &v_c, &m_cov, &y, &y_err);
  return copy_two_double_arr (y, y_err);
}
Beispiel #27
0
CAMLprim value ml_gsl_linalg_PTLQ_svx_T (value QR, value TAU, value P, value X)
{
  _DECLARE_MATRIX(QR);
  _DECLARE_VECTOR2(TAU,X);
  GSL_PERMUT_OF_BIGARRAY(P);
  _CONVERT_MATRIX(QR);
  _CONVERT_VECTOR2(TAU,X);
  gsl_linalg_PTLQ_svx_T (&m_QR, &v_TAU, &perm_P, &v_X);
  return Val_unit;
}
Beispiel #28
0
CAMLprim value ml_gsl_linalg_PTLQ_Lsvx_T (value LQ, value P, value X)
{
  _DECLARE_MATRIX(LQ);
  _DECLARE_VECTOR(X);
  GSL_PERMUT_OF_BIGARRAY(P);
  _CONVERT_MATRIX(LQ);
  _CONVERT_VECTOR(X);
  gsl_linalg_PTLQ_Lsvx_T (&m_LQ, &perm_P, &v_X);
  return Val_unit;
}
Beispiel #29
0
CAMLprim value ml_gsl_blas_ssyr2(value uplo ,value alpha, value X, value Y, value A)
{
    _DECLARE_MATRIX(A);
    _DECLARE_VECTOR2(X, Y);
    _CONVERT_MATRIX(A);
    _CONVERT_VECTOR2(X, Y);
    gsl_blas_ssyr2(CBLAS_UPLO_val(uplo), Double_val(alpha),
                   &v_X, &v_Y, &m_A);
    return Val_unit;
}
Beispiel #30
0
CAMLprim value ml_gsl_linalg_QR_lssolve(value QR, value TAU, value B, value X, 
			       value RES)
{
  _DECLARE_MATRIX(QR);
  _DECLARE_VECTOR4(TAU, RES, B, X);
  _CONVERT_MATRIX(QR);
  _CONVERT_VECTOR4(TAU, RES, B, X);
  gsl_linalg_QR_lssolve(&m_QR, &v_TAU, &v_B, &v_X, &v_RES);
  return Val_unit;
}