diff options
author | Gwendal Grignou <gwendal@chromium.org> | 2015-09-11 12:02:26 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2015-10-13 05:28:54 -0700 |
commit | 828b55a7358ad5ec8bc27552bfb280eb173dd453 (patch) | |
tree | b9430d2bf624ee2b6976eed211696b50ae56decb /include/mat44.h | |
parent | 0647f66f81de880af603a7fb70f57159519782ac (diff) | |
download | chrome-ec-828b55a7358ad5ec8bc27552bfb280eb173dd453.tar.gz |
common: Add magnetometer online calibration.
Code for hard iron calibration: Every seconds (or faster if enough
samples), find a sphere that fit the compass data.
Based on Android code.
BRANCH=smaug
BUG=chrome-os-partner:39900
TEST=Check hard-iron bias is removed. Works better outside.
Change-Id: Iab479d5113b6560b4f01b0fd87373d2eecdb9b54
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/299583
Reviewed-by: Anton Staaf <robotboy@chromium.org>
Diffstat (limited to 'include/mat44.h')
-rw-r--r-- | include/mat44.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/include/mat44.h b/include/mat44.h new file mode 100644 index 0000000000..ae8055d5fb --- /dev/null +++ b/include/mat44.h @@ -0,0 +1,23 @@ +/* Copyright 2015 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +/* Header file for common math functions. */ +#ifndef __CROS_EC_MAT_44_H + +#define __CROS_EC_MAT_44_H + +#include "vec4.h" +#include "util.h" + +typedef float mat44_t[4][4]; +typedef size_t size4_t[4]; + +void mat44_decompose_lup(mat44_t LU, size4_t pivot); + +void mat44_swap_rows(mat44_t A, const size_t i, const size_t j); + +void mat44_solve(mat44_t A, vec4_t x, const vec4_t b, const size4_t pivot); + +#endif /* __CROS_EC_MAT_44_H */ |