R3BROOT
R3B analysis software
Loading...
Searching...
No Matches
LSQR.h File Reference
#include <float.h>
#include <functional>
#include <limits.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
Include dependency graph for LSQR.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  LSQR_LONG_VECTOR
 
struct  LSQR_DOUBLE_VECTOR
 
struct  LSQR_INPUTS
 
struct  LSQR_OUTPUTS
 
struct  LSQR_WORK
 

Macros

#define lsqr_sqr(a)
 

Typedefs

typedef struct LSQR_LONG_VECTOR lvec
 
typedef struct LSQR_DOUBLE_VECTOR dvec
 
typedef struct LSQR_INPUTS lsqr_input
 
typedef struct LSQR_OUTPUTS lsqr_output
 
typedef struct LSQR_WORK lsqr_work
 

Functions

void lsqr_error (const char *, int)
 
lvecalloc_lvec (long)
 
void free_lvec (lvec *)
 
dvecalloc_dvec (long)
 
void free_dvec (dvec *)
 
void alloc_lsqr_mem (lsqr_input **, lsqr_output **, lsqr_work **, long, long)
 
void free_lsqr_mem (lsqr_input *, lsqr_output *, lsqr_work *)
 
lsqr_inputalloc_lsqr_in (long, long)
 
void free_lsqr_in (lsqr_input *)
 
lsqr_outputalloc_lsqr_out (long, long)
 
void free_lsqr_out (lsqr_output *)
 
lsqr_workalloc_lsqr_wrk (long, long)
 
void free_lsqr_wrk (lsqr_work *)
 
void lsqr (lsqr_input *, lsqr_output *, lsqr_work *, std::function< void(long, dvec *, dvec *, void *)>, void *)
 
double dvec_norm2 (dvec *)
 
void dvec_scale (double, dvec *)
 
void dvec_copy (dvec *, dvec *)
 

Macro Definition Documentation

◆ lsqr_sqr

#define lsqr_sqr ( a)
Value:
((a) * (a))

Definition at line 83 of file LSQR.h.

Typedef Documentation

◆ dvec

typedef struct LSQR_DOUBLE_VECTOR dvec

◆ lsqr_input

typedef struct LSQR_INPUTS lsqr_input

◆ lsqr_output

typedef struct LSQR_OUTPUTS lsqr_output

◆ lsqr_work

typedef struct LSQR_WORK lsqr_work

◆ lvec

typedef struct LSQR_LONG_VECTOR lvec

Function Documentation

◆ alloc_dvec()

dvec * alloc_dvec ( long dvec_size)

Definition at line 131 of file LSQR.cxx.

◆ alloc_lsqr_in()

lsqr_input * alloc_lsqr_in ( long max_num_rows,
long max_num_cols )

Definition at line 225 of file LSQR.cxx.

◆ alloc_lsqr_mem()

void alloc_lsqr_mem ( lsqr_input ** in_struct,
lsqr_output ** out_struct,
lsqr_work ** wrk_struct,
long max_num_rows,
long max_num_cols )

Definition at line 173 of file LSQR.cxx.

◆ alloc_lsqr_out()

lsqr_output * alloc_lsqr_out ( long ,
long  )

◆ alloc_lsqr_wrk()

lsqr_work * alloc_lsqr_wrk ( long ,
long  )

◆ alloc_lvec()

lvec * alloc_lvec ( long lvec_size)

Definition at line 90 of file LSQR.cxx.

◆ dvec_copy()

void dvec_copy ( dvec * orig,
dvec * copy )

Definition at line 862 of file LSQR.cxx.

◆ dvec_norm2()

double dvec_norm2 ( dvec * vec)

Definition at line 821 of file LSQR.cxx.

◆ dvec_scale()

void dvec_scale ( double scal,
dvec * vec )

Definition at line 843 of file LSQR.cxx.

◆ free_dvec()

void free_dvec ( dvec * dbl_vec)

Definition at line 159 of file LSQR.cxx.

◆ free_lsqr_in()

void free_lsqr_in ( lsqr_input * in_struct)

Definition at line 257 of file LSQR.cxx.

◆ free_lsqr_mem()

void free_lsqr_mem ( lsqr_input * in_struct,
lsqr_output * out_struct,
lsqr_work * wrk_struct )

Definition at line 210 of file LSQR.cxx.

◆ free_lsqr_out()

void free_lsqr_out ( lsqr_output * out_struct)

Definition at line 298 of file LSQR.cxx.

◆ free_lsqr_wrk()

void free_lsqr_wrk ( lsqr_work * wrk_struct)

Definition at line 344 of file LSQR.cxx.

◆ free_lvec()

void free_lvec ( lvec * lng_vec)

Definition at line 117 of file LSQR.cxx.

◆ lsqr()

void lsqr ( lsqr_input * input,
lsqr_output * output,
lsqr_work * work,
std::function< void(long, dvec *, dvec *, void *)> mat_vec_prod,
void * prod )

Definition at line 418 of file LSQR.cxx.

◆ lsqr_error()

void lsqr_error ( const char * msg,
int code )

Definition at line 77 of file LSQR.cxx.