MIDvec C Library

MIDvec C Library

Released 1 year ago , Last update 1 year ago

MIDvec stands for (M)achine learning, (I)mage development, (D)igital signal processing, and (vec)tors. MIDvec offers a commercial-use, copyleft-free, and very inexpensive scientific computing library for these topics and more.

At a Glance

    • machine learning

      Build an ANN or DNN. Train it, test it, and evaluate it without having to know what a cost function is. Experiment with these machine learning systems at your desired level of control.
    • image development 

      Graph, draw, and express results with MIDvec's comprehensive graphing system - plotting functions as bitmaps in one line.
    • digital signal processing

      Convolution / correlation,  FFT / IFFT, and sinc FIR filters are all features of MIDvec's DSP sub library. This simple assortment of functions is crucial for communications simulation.
  • full support

    Full API plus use examples for every feature of the library. If you contact MIDvec individually, we will be happy to send you the API for free and help you optimize your use of this systems library.
  • ready for embedded

    MIDvec is implemented entirely as a package of C source files, ready for compilation to an embedded platform.

An encapsulated solution that leaves you in control.

The key components of MIDvec are implemented hierarchically for optimal control and speed in your next embedded application.

Full support.

MIDvec comes with a fully comprehensive help document describing how to use every single function in the library. It also comes with a source file full of use examples for all facets of the library, from initializing a vector to training an ANN to attain the image at the right.

Machine learning.

Building and initializing an artificial neural net takes one function call. Feedforward and backpropagation are both each one function. ANNs can be saved and loaded as .txt files. ANNs of arbitrary layer and node count (that is, deep neural networks) can easily be synthesized and simulated with no added code complexity from the end user.

If you have considered integrating artificial or deep neural networks into your embedded systems yet, you may be under the impression that they are mathematically inaccessible to develop reliably and / or that reliable and proprietary libraries or systems for them are too expensive. Let the MIDvec library shatter that notion. As long as you have a cursory, high-level understanding of what a neural network does, the MIDvec system will do the heavy lifting for you. All you need to do is feed it training examples.

To the right and above is the output of an ANN trained to move a particle in a circle of radius 0.5 using MIDvec. The crosshairs denote randomly selected initial positions. Each successive point after each crosshair denotes a small step by that particle in a direction determined by the neural net. In this example it is visible that regardless of particle initial position the ANN forces the particle's movement to converge to a circular path of radius 0.5.

This particle in a circle is a simple example that can be quickly extrapolated to a potential embedded systems problem, such as Simultaneous Localization and Mapping (SLAM) for empirically developing some optimal vector field which defines navigation through space.

Image development.

MIDvec provides a convenient image interface system for systematically generating and editing bitmaps. The plot above was made using MIDvec to plot complex numbers as particle locations. Plotting traces to bitmaps is as simple as a single function call. While some graphing tasks are easy to handle with other systems like Excel, MIDvec's image sub library opens the door for you to exhibit full control over complex graphing tasks.

Bitmaps are a simple, adaptable, frequently-occurring image format. While your desktop probably has more ways to plot a curve than you can count on both hands, your embedded system probably doesn't. What your embedded system sees or stores as an image is effortless to visualize on another platform.

Digital signal processing.

Convolution, correlation, FFT, and IFFT are all available in MIDvec. Generate an FIR filter impulse response (lowpass, highpass, bandpass or bandstop) using one line of code. Quickly develop and test communications systems concepts, or integrate the systems of this sub library with either of the above two sub libraries to tackle larger tasks such as pattern recognition or behavior optimization. Integration with the image library described above offers full control over signal analysis and comparison in time or frequency.

Embedded systems are a core user of DSP systems and tasks. Various embedded systems transduce physical signals in countless forms and depend on DSP to decipher their meaning. With the MIDvec embedded library, rapidly experimenting with DSP systems in an embedded context is effortless. Each primary function - Fourier transform, filter application, filter generation - is one function call away with its hyperparameters readily available.

And more.

As with any library that employs ML and DSP, complex numbers and vector operations must be convenient and neat to use. Menial vector operations such as sorting, zero-padding, printing, generating linearly spaced vectors, term by term operations - these are all tucked neatly into their own functions.

Why this library?

  • Speed and control.

    MIDvec is implemented at a high enough level to give you fast functional control of its algorithms. At the same time, it exposes low level details that you are free to modify for your own purposes.

  • Cost efficient.

    MIDvec isn't diced up into separate "toolkits" or subpackages. The tools of MIDvec come integrated and you pay for them once.

  • Made for business.

    Plenty of libraries exist for machine learning, embedded systems, and more. But they rear an ugly copyleft head once you use them for your business. This product's $29.99 license allows proprietary commercial use projects without copyleft.

  • Lightweight interface.

    No application or IDE that takes ten minutes to load. No install wizard. No bloated GUIs with extraneous buttons, sidebars, menus, or windows. Open in any text editor, call these tools in your application, and throw it in your makefile.
  • Implemented in C.

    Being a C library, MIDvec is ready for embedded systems by design. You can establish proof of concept by simulating this library quickly on PC. Then porting to embedded systems is at worst a matter of text substitution and accounting for peripherals.
  • Portable.

    Being a source code package, MIDvec will run on anything with a C compiler and a console. Whether field testing embedded systems or just saving time spent installing IDEs, portability is crucial.



Hobbyist License

  • Perpetual license

  • 1 application

  • Can distribute binary products only

  • Non-commercial use

  • 6 months support


Developer License

  • Perpetual license

  • Unlimited projects

  • Can distribute code and binary products

  • Commercial use

  • 6 months support

  • Attribution required

Need custom services for this product? Get a quote
3 licenses, starting from From » $14.99 View Licenses

Get A Quote

What do you need?
  • Custom development
  • Integration
  • Customization / Reskinning
  • Consultation
When do you need it?
  • Soon
  • Next week
  • Next month
  • Anytime

Thanks for getting in touch!

Your quote details have been received and we'll get back to you soon.

or Get a quote

for customization or integration services

Or enter your name and Email
No comments have been posted yet.