{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,1,21]],"date-time":"2026-01-21T11:31:13Z","timestamp":1768995073179,"version":"3.49.0"},"reference-count":65,"publisher":"MDPI AG","issue":"5","license":[{"start":{"date-parts":[[2021,3,1]],"date-time":"2021-03-01T00:00:00Z","timestamp":1614556800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Sensors"],"abstract":"<jats:p>We developped an open source library called RcdMathLib for solving multivariate linear and nonlinear systems. RcdMathLib supports on-the-fly computing on low-cost and resource-constrained devices, e.g., microcontrollers. The decentralized processing is a step towards ubiquitous computing enabling the implementation of Internet of Things (IoT) applications. RcdMathLib is modular- and layer-based, whereby different modules allow for algebraic operations such as vector and matrix operations or decompositions. RcdMathLib also comprises a utilities-module providing sorting and filtering algorithms as well as methods generating random variables. It enables solving linear and nonlinear equations based on efficient decomposition approaches such as the Singular Value Decomposition (SVD) algorithm. The open source library also provides optimization methods such as Gauss\u2013Newton and Levenberg\u2013Marquardt algorithms for solving problems of regression smoothing and curve fitting. Furthermore, a positioning module permits computing positions of IoT devices using algorithms for instance trilateration. This module also enables the optimization of the position by performing a method to reduce multipath errors on the mobile device. The library is implemented and tested on resource-limited IoT as well as on full-fledged operating systems. The open source software library is hosted on a GitLab repository.<\/jats:p>","DOI":"10.3390\/s21051689","type":"journal-article","created":{"date-parts":[[2021,3,1]],"date-time":"2021-03-01T10:25:18Z","timestamp":1614594318000},"page":"1689","update-policy":"https:\/\/doi.org\/10.3390\/mdpi_crossmark_policy","source":"Crossref","is-referenced-by-count":2,"title":["RcdMathLib: An Open Source Software Library for Computing on Resource-Limited Devices"],"prefix":"10.3390","volume":"21","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-2014-5683","authenticated-orcid":false,"given":"Zakaria","family":"Kasmi","sequence":"first","affiliation":[{"name":"Freie Universit\u00e4t Berlin, Department of Mathematics and Computer Science, Takustra\u00dfe 9, 14195 Berlin, Germany"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-6809-8329","authenticated-orcid":false,"given":"Abdelmoumen","family":"Norrdine","sequence":"additional","affiliation":[{"name":"Technische Universit\u00e4t Darmstadt, Institut f\u00fcr Baubetrieb, El-Lissitzky-Stra\u00dfe 1, 64287 Darmstadt, Germany"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-3893-4522","authenticated-orcid":false,"given":"Jochen","family":"Schiller","sequence":"additional","affiliation":[{"name":"Freie Universit\u00e4t Berlin, Department of Mathematics and Computer Science, Takustra\u00dfe 9, 14195 Berlin, Germany"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-9855-1860","authenticated-orcid":false,"given":"Mesut","family":"G\u00fcne\u015f","sequence":"additional","affiliation":[{"name":"Otto-von-Guericke University, Faculty of Computer Science, Universit\u00e4tsplatz 2, 39106 Magdeburg, Germany"}]},{"given":"Christoph","family":"Motzko","sequence":"additional","affiliation":[{"name":"Technische Universit\u00e4t Darmstadt, Institut f\u00fcr Baubetrieb, El-Lissitzky-Stra\u00dfe 1, 64287 Darmstadt, Germany"}]}],"member":"1968","published-online":{"date-parts":[[2021,3,1]]},"reference":[{"key":"ref_1","doi-asserted-by":"crossref","first-page":"241","DOI":"10.1109\/MAHC.1981.10034","article-title":"The Early Computers of Konrad Zuse, 1935 to 1945","volume":"3","author":"Ceruzzi","year":"1981","journal-title":"Ann. Hist. Comput."},{"key":"ref_2","unstructured":"Ceruzzi, P.E. (2003). A History of Modern Computing, MIT Press. [2nd ed.]."},{"key":"ref_3","unstructured":"Lee, J.A.N. (1995). Computer Pioneers, IEEE Computer Society Press."},{"key":"ref_4","doi-asserted-by":"crossref","first-page":"658","DOI":"10.1137\/1014116","article-title":"Handbook for Automatic Computation, Vol. II, Linear Algebra (J. H. Wilkinson and C. Reinsch)","volume":"14","author":"Partlett","year":"1972","journal-title":"SIAM Rev."},{"key":"ref_5","doi-asserted-by":"crossref","unstructured":"Dongarra, J.J., Moler, C.B., Bunch, J.R., and Stewart, G.W. (1979). LINPACK Users\u2019 Guide, Society for Industrial and Applied Mathematics.","DOI":"10.1137\/1.9781611971811"},{"key":"ref_6","doi-asserted-by":"crossref","unstructured":"Garbow, B.S., Boyle, J.M., Dongarra, J.J., and Moler, C.B. (1977). Matrix Eigensystem Routines\u2014EISPACK Guide Extension, Springer.","DOI":"10.1007\/3-540-08254-9"},{"key":"ref_7","unstructured":"Cleve Moler (2019). A Brief History of MATLAB. Technical Articles and Newsletters, MathWorks."},{"key":"ref_8","doi-asserted-by":"crossref","unstructured":"Naveen, S., and Kounte, M.R. (2019, January 12\u201314). Key Technologies and challenges in IoT Edge Computing. Proceedings of the 2019 Third International Conference on I-SMAC (IoT in Social, Mobile, Analytics and Cloud) (I-SMAC), Palladam, India.","DOI":"10.1109\/I-SMAC47947.2019.9032541"},{"key":"ref_9","unstructured":"Kasmi, Z. (2021, February 25). Home of the RcdMathLib (Mathematical Library for Resource-Constrained Devices). Available online: https:\/\/git.imp.fu-berlin.de\/zkasmi\/RcdMathLib\/-\/wikis\/Home."},{"key":"ref_10","unstructured":"Strang, G. (2006). Linear Algebra and Its Applications, Thomson, Brooks\/Cole. [4th ed.]."},{"key":"ref_11","doi-asserted-by":"crossref","first-page":"361","DOI":"10.1016\/j.ifacol.2018.03.062","article-title":"Compression and Noise Reduction of Biomedical Signals by Singular Value Decomposition","volume":"51","author":"Schanze","year":"2018","journal-title":"IFAC-PapersOnLine"},{"key":"ref_12","doi-asserted-by":"crossref","unstructured":"Kasmi, Z. (2019). Open Platform Architecture for Decentralized Localization Systems Based on Resource-Constrained Devices. [Ph.D. Thesis, Freie Universit\u00e4t Berlin, Department of Mathematics and Computer Science].","DOI":"10.1109\/TMC.2018.2868930"},{"key":"ref_13","unstructured":"Madsen, K., Nielsen, H.B., and Tingleff, O. (2004). Methods for Non-Linear Least Squares Problems, Technical University of Denmark. [2nd ed.]."},{"key":"ref_14","doi-asserted-by":"crossref","first-page":"276","DOI":"10.1016\/j.asr.2010.05.030","article-title":"The Use of Ionospheric Tomography and Elevation Masks to Reduce the Overall Error in Single-Frequency GPS Timing Applications","volume":"47","author":"Rose","year":"2011","journal-title":"Adv. Space Res."},{"key":"ref_15","unstructured":"Guckenheimer, J. (1988). Numerical Computation in the Information Age. SIAM NEWS, Society for Industrial and Applied Mathematics."},{"key":"ref_16","unstructured":"Arm Limited (2021, February 25). Arm Performance Libraries. Available online: https:\/\/developer.arm.com\/tools-and-software\/server-and-hpc\/arm-architecture-tools\/arm-performance-libraries."},{"key":"ref_17","doi-asserted-by":"crossref","unstructured":"Sanchez, J., and Canton, M.P. (2018). Microcontrollers: High-Performance Systems and Programming, CRC Press.","DOI":"10.1201\/9781315216041"},{"key":"ref_18","unstructured":"Texas Instruments Incorporated (2015). MSP430 IQmathLib User\u2019s Guide, Texas Instruments Incorporated."},{"key":"ref_19","unstructured":"Aimonen, P. (2021, February 25). Cross Platform Fixed Point Maths Library 2012\u20132019. Available online: https:\/\/github.com\/PetteriAimonen\/libfixmath."},{"key":"ref_20","unstructured":"Nicolosi, A. (2021, February 25). A Simple, Tiny and Efficient BLAS Library, Designed for PC and Microcontrollers. Available online: https:\/\/github.com\/alenic\/microBLAS."},{"key":"ref_21","unstructured":"Matlack, C. (2021, February 25). Minimal Linear Algebra Library. Available online: https:\/\/github.com\/eecharlie\/MatrixMath."},{"key":"ref_22","unstructured":"Stewart, T. (2021, February 25). A Library for Representing Matrices and Doing Matrix Math on Arduino. Available online: https:\/\/github.com\/tomstewart89\/BasicLinearAlgebra."},{"key":"ref_23","unstructured":"Oliphant, T.E. (2015). Guide to NumPy, CreateSpace Independent Publishing Platform. [2nd ed.]."},{"key":"ref_24","unstructured":"Nunez-Iglesias, J., van der Walt, S., and Dashnow, H. (2017). Elegant SciPy: The Art of Scientific Python, O\u2019Reilly Media, Inc.. [1st ed.]."},{"key":"ref_25","unstructured":"Bell, C. (2017). MicroPython for the Internet of Things: A Beginner\u2019s Guide to Programming with Python on Microcontrollers, Apress."},{"key":"ref_26","unstructured":"Kurniawan, A. (2018). CircuitPython Development Workshop, PE Press."},{"key":"ref_27","doi-asserted-by":"crossref","unstructured":"Bj\u00f6rck, A. (1996). Numerical Methods for Least Squares Problems, Society for Industrial and Applied Mathematics.","DOI":"10.1137\/1.9781611971484"},{"key":"ref_28","unstructured":"Golub, G.H., and Van Loan, C.F. (2013). Matrix Computations, Johns Hopkins University Press. [4th ed.]."},{"key":"ref_29","doi-asserted-by":"crossref","first-page":"146","DOI":"10.1007\/s13538-011-0052-z","article-title":"The Moore-Penrose Pseudoinverse. A Tutorial Review of the Theory","volume":"42","author":"Barata","year":"2011","journal-title":"Braz. J. Phys."},{"key":"ref_30","unstructured":"Kaw, A. (2008). Introduction to Matrix Algebra, University of South Florida."},{"key":"ref_31","unstructured":"Sengupta, S., and Korobkin, C.P. (2012). C++: Object-Oriented Data Structures, Springer."},{"key":"ref_32","unstructured":"Bailey, R. (1992). The Box-Muller Method and the T-distribution, University of Birmingham, Department of Economics. Department of Economics Discussion Paper."},{"key":"ref_33","unstructured":"Allgower, E., Georg, K., Research, U., and Foundation, N. (1990). Computational Solution of Nonlinear Systems of Equations, American Mathematical Society. Lectures in Applied Mathematics."},{"key":"ref_34","unstructured":"Nocedal, J., and Wright, S. (2006). Numerical Optimization, Springer."},{"key":"ref_35","doi-asserted-by":"crossref","first-page":"89","DOI":"10.2306\/scienceasia1513-1874.2014.40.089","article-title":"Two New Levenberg-Marquardt Methods for Non-smooth Nonlinear Complementarity Problems","volume":"40","author":"Chen","year":"2014","journal-title":"Sci. Asia"},{"key":"ref_36","doi-asserted-by":"crossref","first-page":"377","DOI":"10.2306\/scienceasia1513-1874.2017.43.377","article-title":"On The Local Convergence of a Levenberg-Marquardt Method for Non-smooth Nonlinear Complementarity Problems","volume":"43","author":"Song","year":"2017","journal-title":"Sci. Asia"},{"key":"ref_37","doi-asserted-by":"crossref","first-page":"373","DOI":"10.14317\/jami.2013.373","article-title":"Some Global Convergence Properties of the Levenberg-Marquardt Methods with Line Search","volume":"31","author":"Du","year":"2013","journal-title":"J. Appl. Math. Inform."},{"key":"ref_38","unstructured":"Dahmen, W., and Reusken, A. (2008). Numerik f\u00fcr Ingenieure und Naturwissenschaftler, Springer."},{"key":"ref_39","unstructured":"Guerchali, N. (2017). Untersuchung des Levenberg-Marquardt-Algorithmus zur Indoor-Lokalisierung f\u00fcr den STMF407-Mikrocontroller. [Bachelor\u2019s Thesis, Fachhochschule Aachen]."},{"key":"ref_40","doi-asserted-by":"crossref","unstructured":"Ramnath, S., Javali, A., Narang, B., Mishra, P., and Routray, S.K. (2017, January 19\u201320). IoT-Based Localization and Tracking. Proceedings of the 2017 International Conference on IoT and Application (ICIOT), Nagapattinam, India.","DOI":"10.1109\/ICIOTA.2017.8073629"},{"key":"ref_41","unstructured":"Reed, J.H. (2005). An Introduction to Ultra Wideband Communication Systems, Prentice Hall Press. [1st ed.]."},{"key":"ref_42","unstructured":"(2021, February 25). AeroScout Corporation. Available online: http:\/\/www.aeroscout.com."},{"key":"ref_43","doi-asserted-by":"crossref","unstructured":"Holm, S. (2012, January 13\u201315). Ultrasound Positioning Based on Time-of-Flight and Signal Strength. Proceedings of the 2012 International Conference on Indoor Positioning and Indoor Navigation (IPIN), Sydney, Australia.","DOI":"10.1109\/IPIN.2012.6418728"},{"key":"ref_44","doi-asserted-by":"crossref","first-page":"2003","DOI":"10.1109\/COMST.2017.2684087","article-title":"Magnetic Field-Based Positioning Systems","volume":"19","author":"Pasku","year":"2017","journal-title":"IEEE Commun. Surv. Tutor."},{"key":"ref_45","doi-asserted-by":"crossref","unstructured":"Chawathe, S.S. (2009, January 4\u20137). Low-Latency Indoor Localization Using Bluetooth Beacons. Proceedings of the 2009 12th International IEEE Conference on Intelligent Transportation Systems, St. Louis, MO, USA.","DOI":"10.1109\/ITSC.2009.5309711"},{"key":"ref_46","unstructured":"Norrdine, A. (2012, January 13\u201315). An Algebraic Solution to the Multilateration Problem. Proceedings of the Third International Conference on Indoor Positioning and Indoor Navigation (IPIN2012), Sydney, Australia."},{"key":"ref_47","doi-asserted-by":"crossref","unstructured":"Kasmi, Z., Norrdine, A., and Blankenbach, J. (2017). Platform Architecture for Decentralized Positioning Systems. Sensors, 17.","DOI":"10.3390\/s17050957"},{"key":"ref_48","doi-asserted-by":"crossref","first-page":"1731","DOI":"10.1109\/TMC.2018.2868930","article-title":"Algorithms and Position Optimization for a Decentralized Localization Platform Based on Resource-Constrained Devices","volume":"18","author":"Kasmi","year":"2019","journal-title":"IEEE Trans. Mob. Comput."},{"key":"ref_49","doi-asserted-by":"crossref","first-page":"864","DOI":"10.1109\/JSEN.2004.833512","article-title":"Signal architecture for a distributed magnetic local positioning system","volume":"4","author":"Prigge","year":"2004","journal-title":"IEEE Sens. J."},{"key":"ref_50","doi-asserted-by":"crossref","unstructured":"Prieto, J.C., Croux, C., and Jim\u00e9nez, A.R. (2009). RoPEUS: A New Robust Algorithm for Static Positioning in Ultrasonic Systems. Sensors, 9.","DOI":"10.3390\/s90604211"},{"key":"ref_51","unstructured":"Van Heesch, D. (2021, February 25). Doxygen: Generate Documentation from Source Code. Available online: https:\/\/www.doxygen.nl\/index.html."},{"key":"ref_52","doi-asserted-by":"crossref","unstructured":"Datta, B.N. (2010). Numerical Linear Algebra and Applications, Society for Industrial and Applied Mathematics. [2nd ed.].","DOI":"10.1137\/1.9780898717655"},{"key":"ref_53","doi-asserted-by":"crossref","unstructured":"Trefethen, L., and Schreiber, R. (1990). Average-Case Stability of Gaussian Elimination. SIAM J. Matrix Anal. Appl., 11.","DOI":"10.1137\/0611023"},{"key":"ref_54","doi-asserted-by":"crossref","unstructured":"Trefethen, L., and Bau, D. (1997). Numerical Linear Algebra, Other Titles in Applied Mathematics; Society for Industrial and Applied Mathematics.","DOI":"10.1137\/1.9780898719574"},{"key":"ref_55","doi-asserted-by":"crossref","unstructured":"Stewart, G.W. (1998). Matrix Algorithms: Volume 1, Basic Decompositions, Matrix Algorithms; Society for Industrial and Applied Mathematics.","DOI":"10.1137\/1.9781611971408"},{"key":"ref_56","unstructured":"Thisted, R.A. (1988). Elements of Statistical Computing: Numerical Computation, CRC Press\/Taylor & Francis Group."},{"key":"ref_57","doi-asserted-by":"crossref","unstructured":"Gander, W., Gander, M.J., and Kwok, F. (2014). Scientific Computing\u2014An Introduction Using Maple and MATLAB, Springer Publishing Company, Incorporated.","DOI":"10.1007\/978-3-319-04325-8"},{"key":"ref_58","doi-asserted-by":"crossref","first-page":"403","DOI":"10.1007\/BF02163027","article-title":"Singular Value Decomposition and Least Squares Solutions","volume":"14","author":"Golub","year":"1970","journal-title":"Numer. Math."},{"key":"ref_59","unstructured":"Free Software Foundation, Inc. (2021, February 25). GNU Lesser General Public License, Version 2.1. Available online: https:\/\/www.gnu.org\/licenses\/old-licenses\/lgpl-2.1.en.html."},{"key":"ref_60","doi-asserted-by":"crossref","unstructured":"Baccelli, E., Hahm, O., G\u00fcnes, M., W\u00e4hlisch, M., and Schmidt, T.C. (2013, January 14\u201319). RIOT OS: Towards an OS for the Internet of Things. Proceedings of the 2013 IEEE Conference on Computer Communications Workshops (INFOCOM WKSHPS), Turin, Italy.","DOI":"10.1109\/INFCOMW.2013.6970748"},{"key":"ref_61","unstructured":"Hope, M. (2021, February 25). Linaro Toolchain Binaries. Available online: https:\/\/launchpad.net\/linaro-toolchain-binaries."},{"key":"ref_62","unstructured":"Team, O. (2015). OpenOCD\u2014Open On-Chip Debugger Reference Manual, Samurai Media Limited."},{"key":"ref_63","unstructured":"Kasmi, Z. (2021, February 25). GitLab of the RcdMathLib (Mathematical Library for Resource-Constrained Devices). Available online: https:\/\/git.imp.fu-berlin.de\/zkasmi\/RcdMathLib."},{"key":"ref_64","unstructured":"Croeze, A., Pittman, L., and Reynolds, W. (2012). Solving Nonlinear Least-Squares Problems with the Gauss\u2013Newton and Levenberg\u2013Marquardt Methods, Department of Mathematics, Louisiana State University. Technical Report."},{"key":"ref_65","doi-asserted-by":"crossref","first-page":"1375716","DOI":"10.1155\/2017\/1375716","article-title":"Vector Extrapolation based Landweber Method for Discrete ill-posed Problems","volume":"2017","author":"Zhao","year":"2017","journal-title":"Math. Probl. Eng."}],"container-title":["Sensors"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.mdpi.com\/1424-8220\/21\/5\/1689\/pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,10,11]],"date-time":"2025-10-11T05:30:59Z","timestamp":1760160659000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.mdpi.com\/1424-8220\/21\/5\/1689"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2021,3,1]]},"references-count":65,"journal-issue":{"issue":"5","published-online":{"date-parts":[[2021,3]]}},"alternative-id":["s21051689"],"URL":"https:\/\/doi.org\/10.3390\/s21051689","relation":{},"ISSN":["1424-8220"],"issn-type":[{"value":"1424-8220","type":"electronic"}],"subject":[],"published":{"date-parts":[[2021,3,1]]}}}