-
Notifications
You must be signed in to change notification settings - Fork 89
Open
Description
Hi, I want to utilize the function 'FLASH_lu_piv' to perform a LU factorization. But I have met a NULL pointer error. This error could be my mistake for misunderstanding the usage of the function.
- Configuration
./configure --enable-dynamic-build --enable-external-lapack-for-subproblems --enable-external-lapack-interfaces --enable-multithreading=openmp --enable-supermatrix --enable-cblas-interfaces --enable-portable-timer
- Code samples
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>
#include <unistd.h>
#include <FLAME.h>
int main( void )
{
// matrix parameters: A, column major
int N;
// test parameters
int N_START, N_END, INC, REPEAT;
printf("[INPUT]: input N_START, N_END, INC, REPEAT\n");
if(scanf("%d %d %d %d", &N_START, &N_END, &INC, &REPEAT) == 4){
printf("[TRUE]: true parameters for scanf\n");
}
else{
fprintf(stderr, "[ERROR]: false parameters for scanf\n");
exit(EXIT_FAILURE);
}
// Initialize libflame.
FLA_Init();
// N, REPEAT
N = N_START;
while (N <= N_END){
for(int re_count = 0; re_count < REPEAT; ++ re_count){
dim_t blocksize = 40, depth = 1;
FLA_Obj IPIV;
FLA_Obj_create( FLA_INT, N, 1, 0, 0, &IPIV);
FLA_Obj A, A_FLASH;
FLA_Obj_create( FLA_DOUBLE, N, N, 0, 0, &A );
FLA_Random_matrix( A );
int info;
FLASH_Obj_create_hier_copy_of_flat(A, depth, &blocksize, &A_FLASH);
info = FLASH_LU_piv(A_FLASH, IPIV);
FLASH_Obj_free( &A_FLASH ); FLA_Obj_free( &IPIV );
}
N += INC;
}
FLA_Finalize();
return 0;
}
- build
gcc -o flame.x flame.c -I /home/xx/lib/libflame/include/ /home/xx/project/libflame/lib/x86_64-unknown-linux-gnu/libflame.a /home/xx/lib/openblas/lib/libopenblas.a -fopenmp -lpthread -lm
Metadata
Metadata
Assignees
Labels
No labels
