34 lines
822 B
C
34 lines
822 B
C
/*
|
|
* This file is part of the micropython-ulab project,
|
|
*
|
|
* https://github.com/v923z/micropython-ulab
|
|
*
|
|
* The MIT License (MIT)
|
|
*
|
|
* Copyright (c) 2019 Zoltán Vörös
|
|
*/
|
|
|
|
#ifndef _LINALG_
|
|
#define _LINALG_
|
|
|
|
#include "ndarray.h"
|
|
|
|
#if MICROPY_FLOAT_IMPL == MICROPY_FLOAT_IMPL_FLOAT
|
|
#define epsilon 1.2e-7
|
|
#elif MICROPY_FLOAT_IMPL == MICROPY_FLOAT_IMPL_DOUBLE
|
|
#define epsilon 2.3e-16
|
|
#endif
|
|
|
|
#define JACOBI_MAX 20
|
|
|
|
bool linalg_invert_matrix(mp_float_t *, size_t );
|
|
mp_obj_t linalg_inv(mp_obj_t );
|
|
mp_obj_t linalg_dot(mp_obj_t , mp_obj_t );
|
|
mp_obj_t linalg_zeros(size_t , const mp_obj_t *, mp_map_t *);
|
|
mp_obj_t linalg_ones(size_t , const mp_obj_t *, mp_map_t *);
|
|
mp_obj_t linalg_eye(size_t , const mp_obj_t *, mp_map_t *);
|
|
|
|
mp_obj_t linalg_det(mp_obj_t );
|
|
mp_obj_t linalg_eig(mp_obj_t );
|
|
|
|
#endif
|