|
1 | 1 |  |
2 | 2 |
|
3 | | -### Nelson 1.7.0.0 |
| 3 | +### Nelson 1.8.0.0 |
4 | 4 |
|
5 | | -Nelson is an interactive, fully functional environment for engineering and scientific applications. It implements a matrix-driven language (which is largely compatible with MATLAB and GNU Octave), with advanced features such as 2-D 3-D plotting, image manipulation and viewing, a codeless interface to external C/C++/FORTRAN libraries, native support for various C types, and a host of other features. |
| 5 | +Nelson is a powerful, open-source numerical computational language, developed to provide a comprehensive and intuitive environment for engineers, scientists, and students. With over 1,200 built-in functions, Nelson supports a wide range of tasks, from basic algebra to advanced numerical simulations. |
6 | 6 |
|
7 | | -Try it ! |
| 7 | +Originally inspired by languages like MATLAB© and GNU Octave, Nelson offers users a lightweight yet feature-rich experience. It is designed to be easy to learn and use, with an emphasis on performance and flexibility. |
8 | 8 |
|
9 | | -[Web site](https://nelson-lang.github.io/nelson-website/) |
| 9 | +**Try it now!** |
10 | 10 |
|
11 | | -## Features |
12 | | - |
13 | | -- Types managed by Nelson: |
14 | | - |
15 | | - - double and double complex: scalar, vector, matrix 2D, N dimensions array, sparse matrix. |
16 | | - - single and single complex: scalar, vector, matrix 2D, N dimensions array, sparse matrix. |
17 | | - - logical: scalar, vector, matrix 2D, N dimensions array, sparse matrix. |
18 | | - - character array (UNICODE supported). |
19 | | - - string array (UNICODE supported). |
20 | | - - integers 8, 16, 32, 64 signed and unsigned: scalar, vector, matrix 2D, N dimensions array. |
21 | | - - handle objects. |
22 | | - - anonymous functions, |
23 | | - - all types can be overloaded. |
24 | | - |
25 | | -- `OpenMP` and `SIMD` extensions used. |
26 | | - |
27 | | -- 2D and 3D plotting with high-level plot commands. |
28 | | - |
29 | | -- Desktop environment with history, file and workspace browser. |
30 | | - |
31 | | -- Parallel Computing Module. |
32 | | - |
33 | | -- Fast Fourrier Transformation functions based on FFTW and MKL wrapper. |
34 | | - |
35 | | -- SLICOT (Subroutine Library in Systems and Control Theory) interfaces (optional). |
| 11 | +[Site Web](https://nelson-lang.github.io/nelson-website/) |
36 | 12 |
|
37 | | -- Control System module. |
38 | | - |
39 | | -- Message Passing Interface (MPI): functions for parallel computing. |
40 | | - |
41 | | -- JSON decode/encode data support. |
42 | | - |
43 | | -- HDF5 high-level functions I/O, |
44 | | - |
45 | | -- HDF5 used as default data file format (.nh5) load/save workspace, |
46 | | - |
47 | | -- MAT-file compatible load/save workspace, |
48 | | - |
49 | | -- Foreign Function Interface C/Fortran. |
50 | | - |
51 | | -- Interfacing C/C++ or Fortran with Nelson (build and load external code on the fly). |
52 | | - |
53 | | -- MEX C API compatibility. |
| 13 | +## Features |
54 | 14 |
|
55 | | -- Call Python from Nelson. |
| 15 | +### Data Types Managed by Nelson |
56 | 16 |
|
57 | | -- Nelson Engine API for C (compatible with MEX Engine). Call Nelson from your C code as engine. |
| 17 | +- **Double and Complex Double**: Supports scalars, vectors, 2D matrices, N-dimensional arrays, and sparse matrices. |
| 18 | +- **Single and Complex Single**: Includes scalars, vectors, 2D matrices, N-dimensional arrays, and sparse matrices. |
| 19 | +- **Logical**: Handles scalars, vectors, 2D matrices, N-dimensional arrays, and sparse matrices. |
| 20 | +- **Character Arrays**: Supports UNICODE characters. |
| 21 | +- **String Arrays**: Fully supports UNICODE. |
| 22 | +- **Integers**: 8, 16, 32, and 64-bit signed and unsigned scalars, vectors, 2D matrices, and N-dimensional arrays. |
| 23 | +- **Handle Objects**: For object-oriented functionality. |
| 24 | +- **Anonymous Functions**: Allows creation and manipulation of functions without names. |
| 25 | +- **Data Structures**: Supports dictionaries and tables. |
| 26 | +- **Overloading**: All types can be overloaded for custom behavior. |
58 | 27 |
|
59 | | -- RESTful API web service. |
| 28 | +### Performance Enhancements |
60 | 29 |
|
61 | | -- Inter-process communication between Nelson's process. |
| 30 | +- **OpenMP and SIMD**: Utilizes parallel processing and vectorization for faster computations. |
62 | 31 |
|
63 | | -- The QML engine enables nelson programs to display and manipulate graphical content using Qt's QML framework. |
| 32 | +### Visualization & Interface |
64 | 33 |
|
65 | | -- Component Object Model (COM) client interface: binary-interface standard for software components on Windows. |
| 34 | +- **2D and 3D Plotting**: High-level commands for visualizations. |
| 35 | +- **User Interface Controls**: Built-in controls for creating custom interfaces. |
| 36 | +- **Desktop Environment**: Comes with history tracking, a file explorer, and workspace browser. |
66 | 37 |
|
67 | | -- Write/Read xlsx files on Windows using COM. |
| 38 | +### Advanced Modules |
68 | 39 |
|
69 | | -- Embedded Nelson code editor. |
| 40 | +- **Parallel Computing**: Enables efficient use of multi-core processors. |
| 41 | +- **Fast Fourier Transform (FFT)**: High-performance FFT functions based on FFTW and MKL. |
| 42 | +- **SLICOT Interface**: Optional support for the Systems and Control Theory subroutine library. |
| 43 | +- **Control System Module**: Tools for control theory and system design. |
| 44 | +- **MPI (Message Passing Interface)**: Functions for distributed parallel computing. |
70 | 45 |
|
71 | | -- Help engine: |
| 46 | +### Data Formats & Interfacing |
72 | 47 |
|
73 | | - Generate help files using Nelson dedicated functions. |
74 | | - View your generated help files as html, markdown, pdf, gitbook or directly in Nelson help viewer. |
| 48 | +- **JSON Support**: Read and write JSON files. |
| 49 | +- **HDF5 Functions**: High-level I/O functions, with HDF5 as the default file format for `.nh5` workspaces. |
| 50 | +- **MAT-File Compatibility**: Load and save workspaces in MAT-file format. |
| 51 | +- **Foreign Function Interface (FFI)**: Build and load C/Fortran code on the fly. |
| 52 | +- **MEX C API Compatibility**: Interfacing with MEX-compatible C APIs. |
| 53 | +- **Nelson Engine API**: Use Nelson as a backend engine within C code, compatible with the MEX Engine API. |
| 54 | +- **Python Interfacing**: Call Python scripts and functions from Nelson. |
| 55 | +- **RESTful API**: Enables Nelson to interact with web services. |
75 | 56 |
|
76 | | -- Tests engine: |
| 57 | +### Additional Capabilities |
77 | 58 |
|
78 | | - Validate your algorithm using Nelson dedicated functions. |
79 | | - Export the test results under the xUnit reports format. |
| 59 | +- **Inter-Process Communication**: Communicate between Nelson processes. |
| 60 | +- **QML Engine**: Use Qt’s QML framework to display and manipulate graphical content. |
| 61 | +- **Component Object Model (COM)**: Interface with COM components, especially on Windows. |
| 62 | +- **Excel File Support**: Write and read `.xlsx` files using COM on Windows. |
| 63 | +- **Embedded Code Editor**: Integrated editor for Nelson scripts. |
80 | 64 |
|
81 | | -- Profiling and Code coverage tools for Nelson's language: |
| 65 | +### Help & Testing Tools |
82 | 66 |
|
83 | | - Nelson has a built-in profiler that is very useful to profile your code and find out what script or function is taking the most time. |
| 67 | +- **Help Engine**: Generate and view help files in various formats like HTML, Markdown, PDF, or GitBook. |
| 68 | +- **Test Engine**: Validate algorithms using built-in functions, with support for xUnit report export. |
84 | 69 |
|
85 | | -- [Nelson cloud](https://www.npmjs.com/package/nelson-cloud): |
86 | | - Instant access to Nelson anywhere from an web browser. |
| 70 | +### Profiling & Code Coverage |
87 | 71 |
|
88 | | -- Module skeleton to extend Nelson available here: |
| 72 | +- **Profiler**: Built-in profiler to analyze and optimize code performance. |
| 73 | +- **Code Coverage**: Measure the coverage of your tests to ensure thorough validation. |
89 | 74 |
|
90 | | - - [template macros and builtin](https://github.com/nelson-lang/module_skeleton), |
91 | | - - [basic template macros only](https://github.com/nelson-lang/module_skeleton_basic). |
| 75 | +### Cloud & Extensibility |
92 | 76 |
|
93 | | -- Nelson Modules Manager (nmm) : package manager for Nelson |
| 77 | +- **Nelson Cloud**: Instant access to Nelson from any web browser via [Nelson Cloud](https://www.npmjs.com/package/nelson-cloud). |
| 78 | +- **Module Skeleton**: Templates for extending Nelson: |
| 79 | + - [Template with Macros and Builtins](https://github.com/nelson-lang/module_skeleton). |
| 80 | + - [Basic Macros Template](https://github.com/nelson-lang/module_skeleton_basic). |
| 81 | +- **Nelson Modules Manager (nmm)**: A package manager to install and manage extensions for Nelson. |
94 | 82 |
|
95 | 83 | --- |
96 | 84 |
|
|
0 commit comments