From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id XAA21643; Sat, 3 Aug 2002 23:31:31 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: (from weis@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id XAA20718 for caml-list@pauillac.inria.fr; Sat, 3 Aug 2002 23:31:30 +0200 (MET DST) Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id UAA06726 for ; Fri, 2 Aug 2002 20:34:47 +0200 (MET DST) Received: from xanadu.ece.ucsb.edu (xanadu.ece.ucsb.edu [128.111.56.51]) by nez-perce.inria.fr (8.11.1/8.11.1) with ESMTP id g72IYkf23759 for ; Fri, 2 Aug 2002 20:34:46 +0200 (MET DST) Received: from gimli.ece.ucsb.edu (gimli.ece.ucsb.edu [128.111.56.252]) by xanadu.ece.ucsb.edu (8.12.2/8.12.2) with ESMTP id g72IYh0K019033 for ; Fri, 2 Aug 2002 11:34:43 -0700 (PDT) Date: Fri, 2 Aug 2002 11:34:43 -0700 Mime-Version: 1.0 (Apple Message framework v482) Content-Type: multipart/mixed; boundary=Apple-Mail-1-613960020 Subject: [Caml-list] OCaml 3.04 Bigarray crashes in Mac OS X From: Shivkumar Chandrasekaran To: caml-list@inria.fr Message-Id: <838D6561-A646-11D6-9011-000393942C76@ece.ucsb.edu> X-Mailer: Apple Mail (2.482) Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk --Apple-Mail-1-613960020 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed Hi, I am using OCaml 3.04 interfaced to ATLAS BLAS and LAPACK (via camlidl) on Mac OS X (10.1.5). My program crashes (segfaults, bus errors, etc.) with both ocamlc and ocamlopt. The errors are bizarre. Adding nops sometimes will eliminate the crashes. I ran the ocamlopt version under gdb and it caught one such instance as > Program received signal EXC_BAD_ACCESS, Could not access memory. > 0x005564f4 in bigarray_update_proxy (b1=0x1daca28, b2=0x2509fe8) at > bigarray_stubs.c:746 > 746 ++ b1->proxy->refcount; > (gdb) bt > #0 0x005564f4 in bigarray_update_proxy (b1=0x1daca28, b2=0x2509fe8) at > bigarray_stubs.c:746 > #1 0x00556bdc in bigarray_reshape (vb=31115816, vdim=38838248) at > bigarray_stubs.c:972 > #2 0x0055712c in caml_c_call () > Cannot access memory at address 0x36101e8 > I have not been able to come up with a nice small program that captures this bug. Has anyone else been having this problem? I suspect that I goofed somewhere in my IDL files, which I have attached below. Any help will be appreciated. Thanks, --shiv-- --Apple-Mail-1-613960020 Content-Disposition: attachment; filename=lapack.idl Content-Transfer-Encoding: 7bit Content-Type: application/octet-stream; x-unix-mode=0777; name="lapack.idl" /* File: lapack.idl Package: CamlFloat Purpose: (Caml)IDL for CBLAS and LAPACK and FFTPACK Author: Shivkumar Chandrasekaran Email: shiv@ece.ucsb.edu Date: 11.13.2001 Warn: Keep lapack.h in sync with this file. Otherwise C will assume everything is an int! $Id: $Log: */ /* Note: This uses CUSTOM fftpack files that can be found in ../dfftpack/ and ../fftpack for double and single respectively. */ enum CBLAS_ORDER {CblasRowMajor=101, CblasColMajor=102 }; enum CBLAS_TRANSPOSE {CblasNoTrans=111, CblasTrans=112, CblasConjTrans=113, AtlasConj=114}; /****************************** * Double Precision Interface * ****************************** */ double dlange_ ([ref] char *norm, [ref,in] long int *m, [ref,in] long int *n, [bigarray,fortran,in,out] double a[], [ref,in] long int *lda, [bigarray,fortran,in,out] double work[]); void dlacpy_([ref] char *uplo, [ref,in] long int *m, [ref,in] long int *n, [bigarray,fortran,in,out] double a[], [ref,in] long int *lda, [bigarray,fortran,in,out] double b[], [ref,in] long int *ldb); void dgelqf_ ([ref,in] long int *m, [ref,in] long int *n, [bigarray,fortran,in,out] double a[], [ref,in] long int *lda, [bigarray,fortran,in,out] double tau[], [bigarray,fortran,in,out] double work[], [ref,in] long int *lwork, [ref,out] long int *info); void dormlq_ ([ref,in] char *side, [ref,in] char *trans, [ref,in] long int *m, [ref,in] long int *n, [ref,in] long int *k, [bigarray,fortran,in,out] double a[], [ref,in] long int *lda, [bigarray,fortran,in] double tau[], [bigarray,fortran,in,out] double c[], [ref,in] long int *ldc, [bigarray,fortran,in,out] double work[], [ref,in] long int *lwork, [ref,out] long int *info); void dgeqlf_ ([ref,in] long int *m, [ref,in] long int *n, [bigarray,fortran,in,out] double a[], [ref,in] long int *lda, [bigarray,fortran,in,out] double tau[], [bigarray,fortran,in,out] double work[], [ref,in] long int *lwork, [ref,out] long int *info); void dormql_ ([ref,in] char *side, [ref,in] char *trans, [ref,in] long int *m, [ref,in] long int *n, [ref,in] long int *k, [bigarray,fortran,in,out] double a[], [ref,in] long int *lda, [bigarray,fortran,in] double tau[], [bigarray,fortran,in,out] double c[], [ref,in] long int *ldc, [bigarray,fortran,in,out] double work[], [ref,in] long int *lwork, [ref,out] long int *info); void dgels_ ([ref,in] char *trans, [ref,in] long int *m, [ref,in] long int *n, [ref,in] long int *nrhs, [bigarray,fortran,in,out] double a[], [ref,in] long int *lda, [bigarray,fortran,in,out] double b[], [ref,in] long int *ldb, [bigarray,fortran,in,out] double work[], [ref,in] long int *lwork, [ref,out] long int *info); void dtrtrs_ ([ref,in] char *uplo, [ref,in] char *trans, [ref,in] char *diag, [ref,in] long int *n, [ref,in]long int *nrhs, [bigarray,fortran,in,out] double a[], [ref,in] long int *lda, [bigarray,fortran,in,out] double b[], [ref,in] long int *ldb, [ref,out] long int *info); void dgesvd_ ([ref,in] char *jobu, [ref,in] char *jobvt, [ref,in] long int *m, [ref,in] long int *n, [bigarray,fortran,in,out] double a[], [ref,in] long int *lda, [bigarray,fortran,in,out] double s[], [bigarray,fortran,in,out] double u[], [ref,in] long int *ldu, [bigarray,fortran,in,out] double vt[], [ref,in] long int *ldvt, [bigarray,fortran,in,out] double work[], [ref,in] long int *lwork, [ref,out] long int *info); void dgesdd_ ([ref,in] char *jobz, [ref,in] long int *m, [ref,in] long int *n, [bigarray,fortran,in,out] double a[], [ref,in] long int *lda, [bigarray,fortran,in,out] double s[], [bigarray,fortran,in,out] double u[], [ref,in] long int *ldu, [bigarray,fortran,in,out] double vt[], [ref,in] long int *ldvt, [bigarray,fortran,in,out] double work[], [ref,in] long int *lwork, [bigarray,fortran,in,out] double iwork[], [ref,out] long int *info); void cblas_dgemm([in] enum CBLAS_ORDER Order, [in] enum CBLAS_TRANSPOSE TransA, [in] enum CBLAS_TRANSPOSE TransB, [in] int M, [in] int N, [in] int K, [in] double alpha, [bigarray,fortran,in] double A[], [in] int lda, [bigarray,fortran,in] double B[], [in] int ldb, [in] double beta, [bigarray,fortran,in,out] double C[], [in] int ldc); void cblas_dscal([in] int N, [in] double alpha, [bigarray,fortran,in,out] double X[], [in] int incX); void cblas_dgbmv([in] enum CBLAS_ORDER Order, [in] enum CBLAS_TRANSPOSE TransA, [in] int M, [in] int N, [in] int KL, [in] int KU, [in] double alpha, [bigarray,fortran,in,out] double A[], [in] int lda, [bigarray,fortran,in,out] double X[], [in] int incX, [in] double beta, [bigarray,fortran,in,out] double Y[], [in] int incY); void dcosqi_ ([ref,in] long int *n, [bigarray,fortran,in,out] double wsave[]); void dcosqf_ ([ref,in] long int *n, [bigarray,fortran,in,out] double x[], [bigarray,fortran,in,out] double wsave[]); void dcosqb_ ([ref,in] long int *n, [bigarray,fortran,in,out] double x[], [bigarray,fortran,in,out] double wsave[]); /****************************** * Single Precision Interface * ****************************** */ float slange_ ([ref] char *norm, [ref,in] long int *m, [ref,in] long int *n, [bigarray,fortran,in,out] float a[], [ref,in] long int *lda, [bigarray,fortran,in,out] float work[]); void slacpy_([ref] char *uplo, [ref,in] long int *m, [ref,in] long int *n, [bigarray,fortran,in,out] float a[], [ref,in] long int *lda, [bigarray,fortran,in,out] float b[], [ref,in] long int *ldb); void sgelqf_ ([ref,in] long int *m, [ref,in] long int *n, [bigarray,fortran,in,out] float a[], [ref,in] long int *lda, [bigarray,fortran,in,out] float tau[], [bigarray,fortran,in,out] float work[], [ref,in] long int *lwork, [ref,out] long int *info); void sormlq_ ([ref,in] char *side, [ref,in] char *trans, [ref,in] long int *m, [ref,in] long int *n, [ref,in] long int *k, [bigarray,fortran,in,out] float a[], [ref,in] long int *lda, [bigarray,fortran,in] float tau[], [bigarray,fortran,in,out] float c[], [ref,in] long int *ldc, [bigarray,fortran,in,out] float work[], [ref,in] long int *lwork, [ref,out] long int *info); void sgeqlf_ ([ref,in] long int *m, [ref,in] long int *n, [bigarray,fortran,in,out] float a[], [ref,in] long int *lda, [bigarray,fortran,in,out] float tau[], [bigarray,fortran,in,out] float work[], [ref,in] long int *lwork, [ref,out] long int *info); void sormql_ ([ref,in] char *side, [ref,in] char *trans, [ref,in] long int *m, [ref,in] long int *n, [ref,in] long int *k, [bigarray,fortran,in,out] float a[], [ref,in] long int *lda, [bigarray,fortran,in] float tau[], [bigarray,fortran,in,out] float c[], [ref,in] long int *ldc, [bigarray,fortran,in,out] float work[], [ref,in] long int *lwork, [ref,out] long int *info); void sgels_ ([ref,in] char *trans, [ref,in] long int *m, [ref,in] long int *n, [ref,in] long int *nrhs, [bigarray,fortran,in,out] float a[], [ref,in] long int *lda, [bigarray,fortran,in,out] float b[], [ref,in] long int *ldb, [bigarray,fortran,in,out] float work[], [ref,in] long int *lwork, [ref,out] long int *info); void strtrs_ ([ref,in] char *uplo, [ref,in] char *trans, [ref,in] char *diag, [ref,in] long int *n, [ref,in]long int *nrhs, [bigarray,fortran,in,out] float a[], [ref,in] long int *lda, [bigarray,fortran,in,out] float b[], [ref,in] long int *ldb, [ref,out] long int *info); void sgesvd_ ([ref,in] char *jobu, [ref,in] char *jobvt, [ref,in] long int *m, [ref,in] long int *n, [bigarray,fortran,in,out] float a[], [ref,in] long int *lda, [bigarray,fortran,in,out] float s[], [bigarray,fortran,in,out] float u[], [ref,in] long int *ldu, [bigarray,fortran,in,out] float vt[], [ref,in] long int *ldvt, [bigarray,fortran,in,out] float work[], [ref,in] long int *lwork, [ref,out] long int *info); void sgesdd_ ([ref,in] char *jobz, [ref,in] long int *m, [ref,in] long int *n, [bigarray,fortran,in,out] float a[], [ref,in] long int *lda, [bigarray,fortran,in,out] float s[], [bigarray,fortran,in,out] float u[], [ref,in] long int *ldu, [bigarray,fortran,in,out] float vt[], [ref,in] long int *ldvt, [bigarray,fortran,in,out] float work[], [ref,in] long int *lwork, [bigarray,fortran,in,out] double iwork[], [ref,out] long int *info); void cblas_sgemm([in] enum CBLAS_ORDER Order, [in] enum CBLAS_TRANSPOSE TransA, [in] enum CBLAS_TRANSPOSE TransB, [in] int M, [in] int N, [in] int K, [in] float alpha, [bigarray,fortran,in] float A[], [in] int lda, [bigarray,fortran,in] float B[], [in] int ldb, [in] float beta, [bigarray,fortran,in,out] float C[], [in] int ldc); void cblas_sscal([in] int N, [in] float alpha, [bigarray,fortran,in,out] float X[], [in] int incX); void cblas_sgbmv([in] enum CBLAS_ORDER Order, [in] enum CBLAS_TRANSPOSE TransA, [in] int M, [in] int N, [in] int KL, [in] int KU, [in] float alpha, [bigarray,fortran,in,out] float A[], [in] int lda, [bigarray,fortran,in,out] float X[], [in] int incX, [in] float beta, [bigarray,fortran,in,out] float Y[], [in] int incY); void cosqi_ ([ref,in] long int *n, [bigarray,fortran,in,out] float wsave[]); void cosqf_ ([ref,in] long int *n, [bigarray,fortran,in,out] float x[], [bigarray,fortran,in,out] float wsave[]); void cosqb_ ([ref,in] long int *n, [bigarray,fortran,in,out] float x[], [bigarray,fortran,in,out] float wsave[]); /**************************** * Double Complex Interface * **************************** */ /* We pretend that complex arrays are double arrays in the idl file, since that is how we interface to it. */ /* Note lda of the complex array a! */ double zlange_ ([ref] char *norm, [ref,in] long int *m, [ref,in] long int *n, [bigarray,fortran,in,out] double a[], [ref,in] long int *lda, [bigarray,fortran,in,out] double work[]); /* lda and ldb are for complex arrays a and b */ void zlacpy_([ref] char *uplo, [ref,in] long int *m, [ref,in] long int *n, [bigarray,fortran,in,out] double a[], [ref,in] long int *lda, [bigarray,fortran,in,out] double b[], [ref,in] long int *ldb); /* lda, lwork are for complex a and work */ void zgelqf_ ([ref,in] long int *m, [ref,in] long int *n, [bigarray,fortran,in,out] double a[], [ref,in] long int *lda, [bigarray,fortran,in,out] double tau[], [bigarray,fortran,in,out] double work[], [ref,in] long int *lwork, [ref,out] long int *info); /* dormlq -> zunmlq */ /* a, c, tau, work are complex arrays */ void zunmlq_ ([ref,in] char *side, [ref,in] char *trans, [ref,in] long int *m, [ref,in] long int *n, [ref,in] long int *k, [bigarray,fortran,in,out] double a[], [ref,in] long int *lda, [bigarray,fortran,in] double tau[], [bigarray,fortran,in,out] double c[], [ref,in] long int *ldc, [bigarray,fortran,in,out] double work[], [ref,in] long int *lwork, [ref,out] long int *info); /* a, tau, work are complex arrays */ void zgeqlf_ ([ref,in] long int *m, [ref,in] long int *n, [bigarray,fortran,in,out] double a[], [ref,in] long int *lda, [bigarray,fortran,in,out] double tau[], [bigarray,fortran,in,out] double work[], [ref,in] long int *lwork, [ref,out] long int *info); /* dormql -> zunmql */ /* a, c, tau and work are complex arrays. */ void zunmql_ ([ref,in] char *side, [ref,in] char *trans, [ref,in] long int *m, [ref,in] long int *n, [ref,in] long int *k, [bigarray,fortran,in,out] double a[], [ref,in] long int *lda, [bigarray,fortran,in] double tau[], [bigarray,fortran,in,out] double c[], [ref,in] long int *ldc, [bigarray,fortran,in,out] double work[], [ref,in] long int *lwork, [ref,out] long int *info); /* a, b, work are complex arrays. */ void zgels_ ([ref,in] char *trans, [ref,in] long int *m, [ref,in] long int *n, [ref,in] long int *nrhs, [bigarray,fortran,in,out] double a[], [ref,in] long int *lda, [bigarray,fortran,in,out] double b[], [ref,in] long int *ldb, [bigarray,fortran,in,out] double work[], [ref,in] long int *lwork, [ref,out] long int *info); /* a and b are complex arrays. */ void ztrtrs_ ([ref,in] char *uplo, [ref,in] char *trans, [ref,in] char *diag, [ref,in] long int *n, [ref,in]long int *nrhs, [bigarray,fortran,in,out] double a[], [ref,in] long int *lda, [bigarray,fortran,in,out] double b[], [ref,in] long int *ldb, [ref,out] long int *info); /* a, u, vt, work are complex arrays. double rwork[5*min(M,N)] */ void zgesvd_ ([ref,in] char *jobu, [ref,in] char *jobvt, [ref,in] long int *m, [ref,in] long int *n, [bigarray,fortran,in,out] double a[], [ref,in] long int *lda, [bigarray,fortran,in,out] double s[], [bigarray,fortran,in,out] double u[], [ref,in] long int *ldu, [bigarray,fortran,in,out] double vt[], [ref,in] long int *ldvt, [bigarray,fortran,in,out] double work[], [ref,in] long int *lwork, [bigarray,fortran,in,out] double rwork[], [ref,out] long int *info); /* a, u, vt, and work are complex arrays */ void zgesdd_ ([ref,in] char *jobz, [ref,in] long int *m, [ref,in] long int *n, [bigarray,fortran,in,out] double a[], [ref,in] long int *lda, [bigarray,fortran,in,out] double s[], [bigarray,fortran,in,out] double u[], [ref,in] long int *ldu, [bigarray,fortran,in,out] double vt[], [ref,in] long int *ldvt, [bigarray,fortran,in,out] double work[], [ref,in] long int *lwork, [bigarray,fortran,in,out] double rwork[], [bigarray,fortran,in,out] double iwork[], [ref,out] long int *info); /* a, b, c are complex arrays. alpha and beta are complex numbers. */ void cblas_zgemm([in] enum CBLAS_ORDER Order, [in] enum CBLAS_TRANSPOSE TransA, [in] enum CBLAS_TRANSPOSE TransB, [in] int M, [in] int N, [in] int K, [bigarray,fortran,in,out] double alpha[], [bigarray,fortran,in] double A[], [in] int lda, [bigarray,fortran,in] double B[], [in] int ldb, [bigarray,fortran,in,out] double beta[], [bigarray,fortran,in,out] double C[], [in] int ldc); void cblas_zscal([in] int N, [bigarray,fortran,in,out] double alpha[], [bigarray,fortran,in,out] double X[], [in] int incX); void cblas_zdscal([in] int N, [in] double alpha, [bigarray,fortran,in,out] double X[], [in] int incX); void cblas_zgbmv([in] enum CBLAS_ORDER Order, [in] enum CBLAS_TRANSPOSE TransA, [in] int M, [in] int N, [in] int KL, [in] int KU, [bigarray,fortran,in,out] double alpha[], [bigarray,fortran,in,out] double A[], [in] int lda, [bigarray,fortran,in,out] double X[], [in] int incX, [bigarray,fortran,in,out] double beta[], [bigarray,fortran,in,out] double Y[], [in] int incY); /**************************** * Single Complex Interface * **************************** */ /* We pretend that complex arrays are double arrays in the idl file, since that is how we interface to it. */ /* Note lda of the complex array a! */ float clange_ ([ref] char *norm, [ref,in] long int *m, [ref,in] long int *n, [bigarray,fortran,in,out] float a[], [ref,in] long int *lda, [bigarray,fortran,in,out] float work[]); /* lda and ldb are for complex arrays a and b */ void clacpy_([ref] char *uplo, [ref,in] long int *m, [ref,in] long int *n, [bigarray,fortran,in,out] float a[], [ref,in] long int *lda, [bigarray,fortran,in,out] float b[], [ref,in] long int *ldb); /* lda, lwork are for complex a and work */ void cgelqf_ ([ref,in] long int *m, [ref,in] long int *n, [bigarray,fortran,in,out] float a[], [ref,in] long int *lda, [bigarray,fortran,in,out] float tau[], [bigarray,fortran,in,out] float work[], [ref,in] long int *lwork, [ref,out] long int *info); /* sormlq -> cunmlq */ /* a, c, tau, work are complex arrays */ void cunmlq_ ([ref,in] char *side, [ref,in] char *trans, [ref,in] long int *m, [ref,in] long int *n, [ref,in] long int *k, [bigarray,fortran,in,out] float a[], [ref,in] long int *lda, [bigarray,fortran,in] float tau[], [bigarray,fortran,in,out] float c[], [ref,in] long int *ldc, [bigarray,fortran,in,out] float work[], [ref,in] long int *lwork, [ref,out] long int *info); /* a, tau, work are complex arrays */ void cgeqlf_ ([ref,in] long int *m, [ref,in] long int *n, [bigarray,fortran,in,out] float a[], [ref,in] long int *lda, [bigarray,fortran,in,out] float tau[], [bigarray,fortran,in,out] float work[], [ref,in] long int *lwork, [ref,out] long int *info); /* sormql -> cunmql */ /* a, c, tau and work are complex arrays. */ void cunmql_ ([ref,in] char *side, [ref,in] char *trans, [ref,in] long int *m, [ref,in] long int *n, [ref,in] long int *k, [bigarray,fortran,in,out] float a[], [ref,in] long int *lda, [bigarray,fortran,in] float tau[], [bigarray,fortran,in,out] float c[], [ref,in] long int *ldc, [bigarray,fortran,in,out] float work[], [ref,in] long int *lwork, [ref,out] long int *info); /* a, b, work are complex arrays. */ void cgels_ ([ref,in] char *trans, [ref,in] long int *m, [ref,in] long int *n, [ref,in] long int *nrhs, [bigarray,fortran,in,out] float a[], [ref,in] long int *lda, [bigarray,fortran,in,out] float b[], [ref,in] long int *ldb, [bigarray,fortran,in,out] float work[], [ref,in] long int *lwork, [ref,out] long int *info); /* a and b are complex arrays. */ void ctrtrs_ ([ref,in] char *uplo, [ref,in] char *trans, [ref,in] char *diag, [ref,in] long int *n, [ref,in]long int *nrhs, [bigarray,fortran,in,out] float a[], [ref,in] long int *lda, [bigarray,fortran,in,out] float b[], [ref,in] long int *ldb, [ref,out] long int *info); /* a, u, vt, work are complex arrays. float rwork[5*min(M,N)] */ void cgesvd_ ([ref,in] char *jobu, [ref,in] char *jobvt, [ref,in] long int *m, [ref,in] long int *n, [bigarray,fortran,in,out] float a[], [ref,in] long int *lda, [bigarray,fortran,in,out] float s[], [bigarray,fortran,in,out] float u[], [ref,in] long int *ldu, [bigarray,fortran,in,out] float vt[], [ref,in] long int *ldvt, [bigarray,fortran,in,out] float work[], [ref,in] long int *lwork, [bigarray,fortran,in,out] float rwork[], [ref,out] long int *info); /* a, u, vt, and work are complex arrays */ void cgesdd_ ([ref,in] char *jobz, [ref,in] long int *m, [ref,in] long int *n, [bigarray,fortran,in,out] float a[], [ref,in] long int *lda, [bigarray,fortran,in,out] float s[], [bigarray,fortran,in,out] float u[], [ref,in] long int *ldu, [bigarray,fortran,in,out] float vt[], [ref,in] long int *ldvt, [bigarray,fortran,in,out] float work[], [ref,in] long int *lwork, [bigarray,fortran,in,out] float rwork[], [bigarray,fortran,in,out] double iwork[], [ref,out] long int *info); /* a, b, c are complex arrays. alpha and beta are complex numbers. */ void cblas_cgemm([in] enum CBLAS_ORDER Order, [in] enum CBLAS_TRANSPOSE TransA, [in] enum CBLAS_TRANSPOSE TransB, [in] int M, [in] int N, [in] int K, [bigarray,fortran,in,out] float alpha[], [bigarray,fortran,in] float A[], [in] int lda, [bigarray,fortran,in] float B[], [in] int ldb, [bigarray,fortran,in,out] float beta[], [bigarray,fortran,in,out] float C[], [in] int ldc); void cblas_cscal([in] int N, [bigarray,fortran,in,out] float alpha[], [bigarray,fortran,in,out] float X[], [in] int incX); void cblas_csscal([in] int N, [in] float alpha, [bigarray,fortran,in,out] float X[], [in] int incX); void cblas_cgbmv([in] enum CBLAS_ORDER Order, [in] enum CBLAS_TRANSPOSE TransA, [in] int M, [in] int N, [in] int KL, [in] int KU, [bigarray,fortran,in,out] float alpha[], [bigarray,fortran,in,out] float A[], [in] int lda, [bigarray,fortran,in,out] float X[], [in] int incX, [bigarray,fortran,in,out] float beta[], [bigarray,fortran,in,out] float Y[], [in] int incY); --Apple-Mail-1-613960020-- ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners