8 Screenshots

About This File

The Eigen4AutoIt environment (thread is here:

online Help is here) allows you to do matrix I/O (memory & files), matrix arithmetic, transformation, and decomposition, solve systems of linear equations, and perform advanced statistics, all at either single or double precision. Most functions can act on real or complex matrices (or the latter's real/imaginary parts separately). Much of the actual complexity of using Eigen in its native C++ environment has been hidden for AutoIt users, through extensive bounds and error checks, an intuitive function-naming convention, a large help file, and detailed tutorials and test examples.

This library allows you to perform fast matrix operations on large numerical data sets, using special matrix variables and simple AutoIt wrapper functions. These wrappers call C++ wrappers in the dlls (also written by RTFC, source included). The dlls in turn re-map AutoIt memory and call one or more Eigen functions. All operations are memory pointer-based and act directly on the matrices created in your AutoIt script, obviating the need for data transfers. Both 32-bit and 64-bit environments are supported; in x64, matrices can be any size that fits into virtual memory.

What's New in Version 4.0


  • Added: Eigen4AutoIt.ini file, for easy adjustment of $EIGEN_DLLPATH and other operational settings.
  • Added: x64 support for 64-bit architectures through a new, dedicated dll (EigenDense_x64.dll, automatically selected based upon what macro @AutoItX64 returns). Running E4A executables and scripts from Scite (F5) as a 64-bit process (NB in a 64-bit hardware + OS environment!) requires setting directive #AutoIt3Wrapper_UseX64 = Y.
  • Added: _HighMem integration. In combination with x64 support, the _HighMem library allows handling matrices of any size that fits into  total available virtual memory, without the usual 2/4 GB RAM allocation limit per Windows process that is normally imposed. NB This feature is limited to full 64-bit environments (64-bit machine + 64-bit OS + @AutoItX64=True).
  • Added: new work evironment global $EIGEN_BITNESS (32 or 64, depending upon the content of macro @AutoItX64).
  • Added: new work evironment global $EIGEN_ALLOCATE_RAM_GB (effective only if @AutoItX64=True), determining the amount of pre-allocated RAM in x64-mode; adjust in the Eigen4AutoIt.ini file.
  • Added: new work evironment global $EIGEN_VERSION, containing the current E4A release version number.
  • Added:  _Eigen_Sort_* transformation functions for real (float, double) and integer matrices.
  • Added: _Eigen_Gauss_* Gaussian statistics functions to derive Z-scores, probabilities, and p-values, given the assumption of an underlying Gaussian distribution.
  • Added: Test scripts "Gauss" and "Sort."
  • Added: _Eigen_Reverse_Colwise/Rowwise transformation functions.
  • Added: _Eigen_CreateMatrix_FromAcols/rows_Index, expecting a matrix of col/row indices instead of a csv string. Unlike Eigen_CreateMatrix_FromAcols (original order kept), the user-defined sequence determines the new order.
  • Added: _Eigen_Copy_Acell_ToBcell copy function.
  • Added: _Eigen_MatrixProfile/_FromFile functions to quickly review matrix dimensions, size, and type.
  • Added: _Eigen_GetMatrixSize (rows times columns), and _Eigen_GetMatrixSizeInBytes (rows times columns times $EIGEN_BYTESPERELEMENT)
  • Added: _FromFile variants for several _Eigen_GetMatrix* functions in section Matrix Management.
  • Added: alias wrappers for matrix-internal col/row/diag Copy functions.
  • Added: internal functions _Eigen_IniRead/Write to store user settings and dll path in .\Eigen4AutoIt.ini file.
  • Changed: Eigen includes for dlls have been upgraded to stable release version 3.3.4.
  • Changed: default option (highlighted button) upon encountering E4A errors is now to <Cancel> the script.
  • Changed: installation now requires editing the dll path in the Eigen4AutoIt.ini file.
  • Changed: <specID> in all MatrixSpecs_Single variants is now base-1, in line with all other <specID> look-ups (dll call parameter internally uses base-0 ). This is a script-breaking change. Test scripts 4, 8, 14, and 16 have been updated accordingly, as has Tutorial PCA.
  • Changed: MatrixSpecs parameter <specID> can now also be parsed as a string, like all other <specID> look-ups.
  • Removed: _Eigen_RedefineMatrix. This is a script-breaking change.
  • Fixed: <specID> in all MatrixSpecs_Single variants was not checked for being of numeric type.
  • Fixed: <specID> constraints in MatrixSpecs_Row/Colwise_Single variants were insufficiently strict.
  • Fixed: If a matrix conversion to an AutoIt array fails because it is too large, the call is aborted and an error message appears.
  • Fixed: several bugs in MatrixFileConverter's Xbase I/O option 1Dto2D.
  • Fixed: MatrixFileConverter switching to integer matrixtype through radio button did not re-initialise the work environment.
  • Fixed: various typos and examples in Help document.

User Feedback

You may only provide a review once you have downloaded the file.

There are no reviews to display.

  • Similar Content

    • RTFC
      By RTFC
      The Eigen C++ template library is a great environment for matrix computing; it is fast, reliable, extensive, and well-documented. It is also completely free, and does not rely on any external dependencies. Unfortunately for AutoIt users, the term “template library” implies that any functions you call are only instantiated upon compilation (in C++). That means there's nothing to hook into.
      To make Eigen ’s most important functionality directly accessible from within AutoIt scripts (version 3.3.12+, download it here), I developed the Eigen4AutoIt environment. It runs on Windows and under Wine also on Linux.
      >Download the latest version

      It consists of:
      1) Eigen4AutoIt.au3
      an AutoIt library of wrapper functions that contain extensive bounds checks, matrix management, file I/O, type conversion, and precision control, and two-way data exchange with files and native AutoIt arrays;
      2) Eigen-wrapper dlls (EigenDense.dll, EigenDense_x64.dll)
      re-maps matrices created in AutoIt as Eigen Matrix objects, then calls Eigen’s powerful core functions; the single-precision part of the C++ source code I wrote is included in the bundle (the double-precision,, integer, and complex alternatives just duplicate this with different memory mappings and variable types). The basic functions consist of a single Eigen call; decompositions and statistics are more involved. 3) Additional materials:
      the user-interactive, animated Function Selector and MatrixViewer tools the MatrixFileConverter to read/write E4A matrices from/to .csv ASCII, Excel, and Xbase files. three libraries of scientific and mathematical constants online Help Large (.chm) Help file Quickstart Manual (11-page pdf, updated) Test suite (24 scripts) Five Tutorials, from Basics to Advanced Please note:
      none of this is part of Eigen's own distribution you only need this bundle; you do not need to install Eigen. How it works:
      No matrix content is ever transferred, only memory pointers, meaning computations in AutoIt are virtually as fast as in Eigen’s native environment, with the added advantage of not having to be compiled first. The drawback is that Eigen's native ad-hoc expression templates (and their internal optimisations) cannot be exploited here; you have to construct your operations with the basic building blocks. These provide matrix creation, I/O, cellwise operations, reduction, multiplication, transformation, decomposition (LU, Householder, Choleski, and Jacobi SVD; these include general linear solvers) and a small statistics module by yours truly.

      IMPORTANT: Posting Rules for this thread:
      1) Do not post or PM me any matrix-, maths-, or Eigen-related questions. Eigen has its own User Forum for that (or try math.stackExchange.com). I am not your maths guru! If you post such questions, I will either ignore your post or remind you of this rule.

      2) Do not post or PM me your data sets and/or non-working Eigen4AutoIt scripts; I will not analyse your data or fix your scripts for you! There are many reasons why a linear algebra procedure might fail to produce the answer you expect. You are wielding great mathematical power here, so exploit the fantastic internet resources at your fingertips and learn how to use it. To get you started, I've listed a few video tutorials and other helpful materials in the header remarks of Eigen4AutoIt.au3. Also check out the test scripts, the Tutorials, and the Help file.

      3) I do warmly welcome all of the following:
      remarks, advice, suggestions for improvements, encouragement, cash; bug reports re. the Eigen4AutoIt interface (individual functions that don't work the way they should) and/or the associated dll code (ditto); your own working Eigen4AutoIt templates of general use that you'd like to see implemented in a future release. Regarding that last item, have a look at my PCA tutorial. After the step-by-step stage, I summarise the entire procedure in a "mini script" of Eigen4AutoIt calls. Then I introduce the two internal PCA functions I developed, which replace that script with two simple calls. You can do the same thing, and submit your own functional Eigen4AutoIt script in this thread. If I consider it of general use and can implement it, it may become a new Eigen4AutoIt function in the next release (with source acknowledgement, of course). This means that you'd get a precompiled dll version of your script that will likely run faster and be simpler to call. Thereby this thread would become an Eigen4AutoIt Example Scripts mini forum. It's just a thought.
      >Download the latest version (uncompressed size: 26 MB)
      How to Install
      You need AutoIt version 3.3.12 or later. Extraction (with 7-zip) creates subdirectory Eigen4AutoIt, where you'll find Eigen4AutoIt.ini. Open it, find global variable $EIGEN_DLLPATH, and copy/paste the full absolute path (without trailing backslash) where the Eigen4AutoIt dlls are located on your machine. Save the ini file, open the first tutorial ("intro") in Scite, and start it. This shows basic matrix I/O and mode switching (single versus double precision). If that runs, you're in business.
    • AlecSadler
      By AlecSadler
      Hello friends! I have been working on an encryption algorithm in autoit as a proof of concept for some time now. Basically the algorithm uses a progressive recursion to encode data inside a matrix using a key that changes according to the date-time of the system, which is extracted from a larger key array. Recently after a drive failure, I lost the source and had to start from scratch, now I can't quite get it working the way it was before, and I can't see what I'm doing wrong, if anyone who understands matrix math or encryption could help I would much appreciate it. The problem is that the values returned by the decryption (extraction) process are way too big.
      I have figured out the solution to my problem, it was a typo, please disregard this thread.
      I will post my project into example scripts when it's ready.
    • wakillon
      By wakillon
      Pic2Vector permit to easily convert bitmap Images to clean Vector Art and save it result to jpg, png, bmp or gif format.
      See Topic for more details and examples.
    • wakillon
      By wakillon
      May be some of you know the shareware VectorMagic who permit to easily convert bitmap Images to clean Vector Art !
      Pic2Vector is free, and can give similar effects ! 

      I was  interested by some effects added to a photo.
      I'm not using gdi for the vectorization, but 2 command line tools :
      Autotrace 0.27 with ILDA file support for converting bitmap to vector graphics
      Custom Version at : http://www.raycomposer.de/en/ressources/autotrace/
      More general infos : http://autotrace.sourceforge.net/
      GPL Ghostscript 9.07
      use here for converting vector graphics to Jpeg.
      More infos : http://www.ghostscript.com/doc/9.07/Use.htm#
      example 1
      example 2
      example 3
      example 4
      example 5
      example 6
      example 7
      example 8
      Free to you to play with settings for see changes.(Infos with tooltip added to each type of setting)
      If UAC Enable, use right click, execute as Admin.
      Click on vectorized Pic for display it in fullscreen with Windows picture Viewer.
      You can save result to jpg, png, bmp or gif format.
      Changes Version
      Settings can be saved by creating a profil.
      No more appcrash window for autotrace.exe.
      New buttons for display compatibility with xp.
      Externals files are embedded, no more downloads needed.
      Some minor improvements.
      Added new examples to topic.
      Tested with WinXp, Win7 and Win 8.1.
      previous downloads : 666
      source and executable are available in the Download Section
      Hope you like it !