コード例 #1
0
ファイル: mlgsl_blas_float.c プロジェクト: ptrf/LCDE
CAMLprim value ml_gsl_blas_scopy(value X, value Y)
{
    _DECLARE_VECTOR2(X, Y);
    _CONVERT_VECTOR2(X, Y);
    gsl_blas_scopy(&v_X, &v_Y);
    return Val_unit;
}
コード例 #2
0
ファイル: mlgsl_blas_float.c プロジェクト: ptrf/LCDE
CAMLprim value ml_gsl_blas_saxpy(value alpha, value X, value Y)
{
    _DECLARE_VECTOR2(X, Y);
    _CONVERT_VECTOR2(X, Y);
    gsl_blas_saxpy(Double_val(alpha), &v_X, &v_Y);
    return Val_unit;
}
コード例 #3
0
ファイル: mlgsl_fit.c プロジェクト: oandrieu/ocamlgsl
CAMLprim value ml_gsl_multifit_linear_svd(value wo, value x, value y, 
					  value tol, value c, value cov, 
					  value ws)
{
  size_t rank;
  double chisq;
  _DECLARE_MATRIX2(x,cov);
  _DECLARE_VECTOR2(y,c);
  _CONVERT_MATRIX2(x,cov);
  _CONVERT_VECTOR2(y,c);
  if(wo == Val_none)
    gsl_multifit_linear_svd(&m_x, &v_y, 
			    Double_val(tol), &rank,
			    &v_c, &m_cov, 
			    &chisq, MultifitWS_val(ws));
  else {
    value w=Field(wo, 0);
    _DECLARE_VECTOR(w);
    _CONVERT_VECTOR(w);
    gsl_multifit_wlinear_svd(&m_x, &v_w, &v_y, 
			     Double_val(tol), &rank,
			     &v_c, &m_cov, 
			     &chisq, MultifitWS_val(ws));
  }
  {
    CAMLparam0();
    CAMLlocal2(r, v_chisq);
    v_chisq = copy_double (chisq);
    r = alloc_small (2, 0);
    Field (r, 0) = Val_long (rank);
    Field (r, 1) = v_chisq;
    CAMLreturn(r);
  }
}
コード例 #4
0
ファイル: mlgsl_blas_float.c プロジェクト: ptrf/LCDE
CAMLprim value ml_gsl_blas_srot(value X, value Y, value c, value s)
{
    _DECLARE_VECTOR2(X, Y);
    _CONVERT_VECTOR2(X, Y);
    gsl_blas_srot(&v_X, &v_Y, Double_val(c), Double_val(s));
    return Val_unit;
}
コード例 #5
0
ファイル: mlgsl_blas_float.c プロジェクト: ptrf/LCDE
CAMLprim value ml_gsl_blas_sdot(value X, value Y)
{
    float r;
    _DECLARE_VECTOR2(X, Y);
    _CONVERT_VECTOR2(X, Y);
    gsl_blas_sdot(&v_X, &v_Y, &r);
    return copy_double(r);
}
コード例 #6
0
ファイル: mlgsl_linalg.c プロジェクト: Chris00/gsl-ocaml
CAMLprim value ml_gsl_linalg_LQ_LQsolve(value Q, value L, value B, value X)
{
  _DECLARE_MATRIX2(Q,L);
  _DECLARE_VECTOR2(B,X);
  _CONVERT_MATRIX2(Q,L);
  _CONVERT_VECTOR2(B,X);
  gsl_linalg_LQ_LQsolve(&m_Q, &m_L, &v_B, &v_X);
  return Val_unit;
}
コード例 #7
0
ファイル: mlgsl_linalg.c プロジェクト: Chris00/gsl-ocaml
CAMLprim value ml_gsl_linalg_LQ_update(value LQ, value R, value V, value W)
{
  _DECLARE_MATRIX2(LQ,R);
  _DECLARE_VECTOR2(V,W);
  _CONVERT_MATRIX2(LQ,R);
  _CONVERT_VECTOR2(V,W);
  gsl_linalg_LQ_update(&m_LQ, &m_R, &v_V, &v_W);
  return Val_unit;
}
コード例 #8
0
ファイル: mlgsl_linalg.c プロジェクト: Chris00/gsl-ocaml
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;
}
コード例 #9
0
ファイル: mlgsl_linalg.c プロジェクト: Chris00/gsl-ocaml
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;
}
コード例 #10
0
ファイル: mlgsl_linalg.c プロジェクト: Chris00/gsl-ocaml
CAMLprim value ml_gsl_linalg_LQ_svx_T(value LQ, value TAU, value X)
{
  _DECLARE_MATRIX(LQ);
  _DECLARE_VECTOR2(TAU, X);
  _CONVERT_MATRIX(LQ);
  _CONVERT_VECTOR2(TAU, X);
  gsl_linalg_LQ_svx_T(&m_LQ, &v_TAU, &v_X);
  return Val_unit;
}
コード例 #11
0
ファイル: mlgsl_linalg.c プロジェクト: Chris00/gsl-ocaml
/* Singular Value Decomposition */
CAMLprim value ml_gsl_linalg_SV_decomp(value A, value V, value S, value WORK)
{
  _DECLARE_MATRIX2(A, V);
  _DECLARE_VECTOR2(S, WORK);
  _CONVERT_MATRIX2(A, V);
  _CONVERT_VECTOR2(S, WORK);
  gsl_linalg_SV_decomp(&m_A, &m_V, &v_S, &v_WORK);
  return Val_unit;
}
コード例 #12
0
ファイル: mlgsl_linalg.c プロジェクト: Chris00/gsl-ocaml
CAMLprim value ml_gsl_linalg_QR_update(value Q, value R, value W, value V)
{
  _DECLARE_MATRIX2(Q, R);
  _DECLARE_VECTOR2(W, V);
  _CONVERT_MATRIX2(Q, R);
  _CONVERT_VECTOR2(W, V);
  gsl_linalg_QR_update(&m_Q, &m_R, &v_W, &v_V);
  return Val_unit;
}
コード例 #13
0
ファイル: mlgsl_linalg.c プロジェクト: Chris00/gsl-ocaml
CAMLprim value ml_gsl_linalg_QR_QRsolve(value Q, value R, value B, value X)
{
  _DECLARE_MATRIX2(Q, R);
  _DECLARE_VECTOR2(B, X);
  _CONVERT_MATRIX2(Q, R);
  _CONVERT_VECTOR2(B, X);
  gsl_linalg_QR_QRsolve(&m_Q, &m_R, &v_B, &v_X);
  return Val_unit;
}
コード例 #14
0
ファイル: mlgsl_linalg.c プロジェクト: Chris00/gsl-ocaml
CAMLprim value ml_gsl_linalg_cholesky_solve(value CHO, value B, value X)
{
  _DECLARE_MATRIX(CHO);
  _DECLARE_VECTOR2(B, X);
  _CONVERT_MATRIX(CHO);
  _CONVERT_VECTOR2(B, X);
  gsl_linalg_cholesky_solve(&m_CHO, &v_B, &v_X);
  return Val_unit;
}
コード例 #15
0
ファイル: mlgsl_linalg.c プロジェクト: Chris00/gsl-ocaml
CAMLprim value ml_gsl_linalg_QR_svx(value QR, value TAU, value X)
{
  _DECLARE_MATRIX(QR);
  _DECLARE_VECTOR2(TAU, X);
  _CONVERT_MATRIX(QR);
  _CONVERT_VECTOR2(TAU, X);
  gsl_linalg_QR_svx(&m_QR, &v_TAU, &v_X);
  return Val_unit;
}
コード例 #16
0
ファイル: mlgsl_linalg.c プロジェクト: Chris00/gsl-ocaml
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;
}
コード例 #17
0
ファイル: mlgsl_blas_float.c プロジェクト: ptrf/LCDE
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;
}
コード例 #18
0
ファイル: mlgsl_linalg.c プロジェクト: Chris00/gsl-ocaml
/* 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;
}
コード例 #19
0
ファイル: mlgsl_linalg.c プロジェクト: Chris00/gsl-ocaml
CAMLprim value ml_gsl_linalg_bidiag_unpack2(value A, value TAU_U, value TAU_V, value V)
{
  _DECLARE_MATRIX2(A, V);
  _DECLARE_VECTOR2(TAU_U, TAU_V);
  _CONVERT_MATRIX2(A, V);
  _CONVERT_VECTOR2(TAU_U, TAU_V);
  gsl_linalg_bidiag_unpack2(&m_A, &v_TAU_U, &v_TAU_V, &m_V);
  return Val_unit;
}
コード例 #20
0
ファイル: mlgsl_linalg.c プロジェクト: Chris00/gsl-ocaml
/* 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;
}
コード例 #21
0
ファイル: mlgsl_linalg.c プロジェクト: Chris00/gsl-ocaml
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;
}
コード例 #22
0
ファイル: mlgsl_linalg.c プロジェクト: Chris00/gsl-ocaml
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;
}
コード例 #23
0
ファイル: mlgsl_linalg.c プロジェクト: Chris00/gsl-ocaml
CAMLprim value ml_gsl_linalg_LU_solve(value LU, value P, value B, value X)
{
  GSL_PERMUT_OF_BIGARRAY(P);
  _DECLARE_MATRIX(LU);
  _DECLARE_VECTOR2(B,X);
  _CONVERT_MATRIX(LU);
  _CONVERT_VECTOR2(B,X);
  gsl_linalg_LU_solve(&m_LU, &perm_P, &v_B, &v_X);
  return Val_unit;
}
コード例 #24
0
ファイル: mlgsl_linalg.c プロジェクト: Chris00/gsl-ocaml
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;
}
コード例 #25
0
ファイル: mlgsl_blas_float.c プロジェクト: ptrf/LCDE
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;
}
コード例 #26
0
ファイル: mlgsl_fit.c プロジェクト: oandrieu/ocamlgsl
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);
}
コード例 #27
0
ファイル: mlgsl_linalg.c プロジェクト: Chris00/gsl-ocaml
CAMLprim value ml_gsl_linalg_PTLQ_Lsolve_T (value LQ, value P, value B, value X)
{
  _DECLARE_MATRIX(LQ);
  _DECLARE_VECTOR2(B,X);
  GSL_PERMUT_OF_BIGARRAY(P);
  _CONVERT_MATRIX(LQ);
  _CONVERT_VECTOR2(B,X);
  gsl_linalg_PTLQ_Lsolve_T (&m_LQ, &perm_P, &v_B, &v_X);
  return Val_unit;
}
コード例 #28
0
ファイル: mlgsl_linalg.c プロジェクト: Chris00/gsl-ocaml
CAMLprim value ml_gsl_linalg_PTLQ_update (value Q, value L, value P, value V, value W)
{
  _DECLARE_MATRIX2(Q,L);
  _DECLARE_VECTOR2(V,W);
  GSL_PERMUT_OF_BIGARRAY(P);
  _CONVERT_MATRIX2(Q,L);
  _CONVERT_VECTOR2(V,W);
  gsl_linalg_PTLQ_update (&m_Q, &m_L, &perm_P, &v_V, &v_W);
  return Val_unit;
}
コード例 #29
0
ファイル: mlgsl_linalg.c プロジェクト: Chris00/gsl-ocaml
/* P^T L Q decomposition */
CAMLprim value ml_gsl_linalg_PTLQ_decomp (value A, value TAU, value P, value NORM)
{
  int signum;
  _DECLARE_MATRIX(A);
  _DECLARE_VECTOR2(TAU,NORM);
  GSL_PERMUT_OF_BIGARRAY(P);
  _CONVERT_MATRIX(A);
  _CONVERT_VECTOR2(TAU,NORM);
  gsl_linalg_PTLQ_decomp (&m_A, &v_TAU, &perm_P, &signum, &v_NORM);
  return Val_int (signum);
}
コード例 #30
0
ファイル: mlgsl_blas_float.c プロジェクト: ptrf/LCDE
CAMLprim value ml_gsl_blas_sgemv(value transa, value alpha, value A,
                                 value X, value beta, value Y)
{
    _DECLARE_MATRIX(A);
    _DECLARE_VECTOR2(X, Y);
    _CONVERT_MATRIX(A);
    _CONVERT_VECTOR2(X, Y);
    gsl_blas_sgemv(CBLAS_TRANS_val(transa), Double_val(alpha),
                   &m_A, &v_X, Double_val(beta), &v_Y);
    return Val_unit;
}