[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Help-gsl] A Vector as the 3rd Argument in GSL_vector_set
From: |
Matthew Boulton |
Subject: |
[Help-gsl] A Vector as the 3rd Argument in GSL_vector_set |
Date: |
Mon, 27 Aug 2007 23:20:34 +0100 |
Hello. I'm a little confused with some code I'm working on.
At present I have a vector called kernel_vec which is defined as follows:
"kernel_vec = (DATA_TYPE **)malloc( ncomp_kernel * sizeof(DATA_TYPE *) )"
now the extra * in the sizeof(DATA_TYPE *) at the end initlaly had me a bit
worried. Later in the code it turns out that the following line is run:
"kernel_vec[nvec] = kernel_vector( nvec , idegx , idegy , ig , &test );"
where kernel_vector is a function that returns an entire vector. Now in GSL
form those two bits of code look as follows:
"kernel_vec = gsl_vector_calloc( ncomp_kernel );"
"gsl_vector_set( kernel_vec , nvec , kernel_vector( nvec , idegx , idegy ,
ig , &test ) );"
Now I have no experience with a vector as the third argument of
GSL_vector_set rather then a single value. At the moment I'm getting errors
at compilation such as:
get_stamp_vectors.c:48: error: incompatible type for argument 1 of
'gsl_vector_set'
get_stamp_vectors.c:48: error: incompatible type for argument 3 of
'gsl_vector_set'
I have produced a test programme below which illustrates what I am trying to
do:
--Vector_as_argument_test.c
#include <stdio.h>
#include <gsl/gsl_vector.h>
gsl_vector *kernel_vec;
gsl_vector *kernel_vector( int , int , int , int , char * );
int main()
{
int i;
int ncomp_kernel = 196;
int nvec = 0;
kernel_vec = gsl_vector_calloc( ncomp_kernel );
while( nvec < 10 )
{
for ( i = 0 ; i < ncomp_kernel ; i++ )
{
printf("kernel_vec[%d] = %g\n" , i , gsl_vector_get( kernel_vec , i ) );
}
gsl_vector_set( kernel_vec , nvec , kernel_vector( 1 , 2 , 3 , 4 , "Test" )
);
for ( i = 0 ; i < ncomp_kernel ; i++ )
{
printf("kernel_vec[%d] = %g\n" , i , gsl_vector_get( kernel_vec , i ) );
}
nvec++;
}
return 0;
}
-- Kernel_Vector_test.c
#include <stdio.h>
#include <gsl/gsl_vector.h>
gsl_vector *vector;
gsl_vector *kernel_vector( int n , int deg_x , int deg_y , int ig , char
*test )
{
int ncomp_kernel = 196;
vector = gsl_vector_calloc( ncomp_kernel );
gsl_vector_set_all( vector , 10.0 );
return vector;
}
Any ideas how I can proceed?
Kind Regards,
Matt
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Help-gsl] A Vector as the 3rd Argument in GSL_vector_set,
Matthew Boulton <=