This is the mail archive of the
gsl-discuss@sources.redhat.com
mailing list for the GSL project.
Re: Compilation of GSL on Visual C++ 6.0 mostly done ...
Jose Miguel Buenaposada Biencinto writes:
> - I don't understand the Brian Gough suggestion, how this define is
> suposed to solve the lost of acosh and atanh in the math.h?
>
> #define acosh gsl_acosh
> #define atanh gsl_atanh
>
> I think I need a C version of acosh and atanh to replace the non existing
> ones, Is that right?
Ah, my mistake, in the CVS version you can find some functions
gsl_acosh and gsl_atanh, in sys/invhyp.c, which can be substituted
this way but I forgot that they were not included in 0.7. You might
want to add them to your version.
>
> - I have eliminated some of the warnings on const/not const parameters to
>
> functions on definition/declaration, but still remains a lot of them. I
> can
> post to the list the output of the compiler if it's usefull.
Yes please, I would be interested to see it ... if you can put the
whole log on the web or send it to me.
>
> - There is some warnings related to conversions between types with a
> possible lost of data.
> - The worst thing is in matrix/rowcol_source.c, I have isolated the
> problem in both ocurrences of BASE_GSL_COMPLEX. If thouse are
> present the these errors are tiggered:
>
> > > rowcol_source.c(21) : error C2061: syntax error : identifier
> > > 'gsl_matrix__complex_submatrix' rowcol_source.c(21) : error C2059:
> > > syntax error : ';' rowcol_source.c(21) : error C2143: syntax error
> > > : missing ')' before '*'
> > > rowcol_source.c(21) : error C2143: syntax error : missing '{'
> > > before '*'
>
> On the other hand if both ocurrences are commented out then the errors
> desapears and, of course, the support for complex matrices.
I'm not sure what is going on there -- if the other files work then
rowcol.c should be ok too, I can't see anything different about it.
> - In order to Visual C++ to perform as a strictly ANSI C compliant
> compiler
> (defining __STDC__) I have to check "Disable all extensions" in
> Settings->C/C++->Customize. In this case I have to change an
> initiallitation
> in interpolation/cspline.c to look like:
>
> #ifdef __STDC__
> gsl_vector solution_vec;
> gsl_vector_set(&solution_vec, 0, sys_size);
> gsl_vector_set(&solution_vec, 1, 1);
> gsl_vector_set(&solution_vec, 2, *(interp->c) + 1.);
> gsl_vector_set(&solution_vec, 3, 0);
> #else
> // Ilegal Initiallitation in VC++ with "Disable all extensions"
> checked.
> gsl_vector solution_vec = { sys_size, 1, interp->c + 1, 0 };
> #endif
>
> Is this correct ? Or I'm missing something ?
>
For gsl-0.7 this should be changed to,
gsl_vector solution_vec;
solution_vec.size = sys_size;
solution_vec.stride = 1;
solution_vec.data = interp->c + 1;
solution_vec.block = 0;
(it is fixed in the CVS version).