MatrixBerryCore
|
library was originally developed as a set of auxilary classes and functions for Ellipsodal Toolbox for Matlab project back in 2014. Then in 2016 it was decided to separate the library from "Ellipsoidal Toolbox" so that it can be developed as an independent open-source project.
Right from the begining we have been following Test Driven Development (TTD) approach by implementing and extending a test coverage for most of the library functions. Our ideology is to cover every new feature with meanigful tests and every bug found - with negative tests.
mxberry.core.cont.ondisk
package.mxberry.core.cont.MapExtended
is an extension of built-in containers.Map
class that supportsmxberry.core.parseparext
and mxberry.core.parseparams
and input parameters checking functions in mxberry.core.check
packagemxberry.core.obj.HandleObjectCloner
class designed as a parent class for handle objects that require such features asismember
and unique
operations Check out tests in mxberry.core.obj.test
package for more details - **for emulation of static properties** - `mxberry.core.obj.StaticPropStorage` class emulates static properties via persistent variables.Check out tests in
mxberry.core.obj.test
package for more detailsmxberry.core
package contains a lot of functions with ismember*
and unique*
name patterns for different types of unique-like and ismember-like operations. mxberry.core.ismember and mxberry.core.unique use these operations to implement ismember
and unique
for arbitrary types. Check out tests in mxberry.core.test.IsMemberTC
test case for more detailsmxberry.core.MExceptionUtils
class provides methods for converting Matlab exceptions into plain text and hyper text strings.mxberry.core
package, such asabsrelcompare
for comparing arrays using both relative and absolute tolerancesgetcallername
and getcallernameext
for getting names of callersthrowerror
and throwwarn
for throwing warnings and exceptions with automatically generated identifiersmxberry.core.string
- working with stringsmxberry.core.struct
- structuresmxberry.core.cell
- cellsmxberry.io
package. All these functions are implemented in Java so they are free of filename and path length limit problems on Windows platforms.mxberry.java.AJavaStaticPathMgr
class is designed as extendable abstract class for much easier management of java static path in Matlab, including an automatic deployment of 'jar' files. See mxberry.selfmnt.JavaStaticPathMgr
class for an example of AJavaStaticPathMgr abstract methods implementation for a deployment of MatrixBerry Core library.mxberry.system
package contains functions for gettingmxberry.xml.xmlformat
package.Getting started with MatrixBerry-Core is super easy! Simply fork this repository and follow the instructions below. Or, if you'd like to check out what MatrixBerry-Core is capable of, take a look at the Doxygen documentation.
You're going to need:
cd mxberry-core
s_install
script from install
subfolder. You can do this either manually from Matlab command line or via a shell script for a specific Matlab version in install
subfolder. Please keep in mind that if you do not use the start script from install
subfolder to start Matlab you need to make sure that your "Start in" directory is always mxberry-core/install
. That is because the very first run of s_install
script creates javaclasspath.txt
file with absolute paths to some jar
files that are a part of MatrixBerry-Core library. As part of this very first run the jar files are added to dynamic Java path of Matlab JVM. All subsequent Matlab runs with "Start in" directory set to mxberry-core/install
load the created javaclasspath.txt
file thus adding the jar files to static Java path of Matlab JVM.
Submit an issue to the MatrixBerry-Core Github if you need any help. And, of course, feel free to submit pull requests with bug fixes or changes.
MatrixBerry-Core was built by Peter Gagarinov and Ilya Rublev while working on Ellipsoidal Toolbox for Matlab at Computation Mathematics and Cybernetics Faculty of Lomonosov Moscow State University, System Analysis Department.