CodePlexProject Hosting for Open Source Software

- numerical computations, i.e. Linear Algebra operations, Numerical Integration, Fast-Fourier-Transformation, 1-/n-dimensional Optimization, curve/surface fitting, special functions etc.
- quantitative finance (pricing and risk management).

- The Dodoni.net runtime is free for all use, and distributed under a permissive open-source license that also allows commercial use.
- The project Roadmap provide an overview of progress made towards releasing a version.

- Microsoft .NET framework, at least .NET 4.0.

- Windows XP, Windows Vista or Windows 7 etc. (32- or 64 bit).

The Excel interface is based on the Excel-DNA project, an intuitive open source .NET library for using .NET functions in Excel, designed by Govert van Drimmelen. The Add-In has been tested with

- Microsoft Excel 2007 and Excel 2010 (32- and 64 bit).

The complete feature set of Dodoni.net requires external (native) libraries for which are not part of the distribution (some managed code is available as fallback implementation). If these features are used one has to copy the corresponding libraries (dll's) into the specified binary folder. The configuration of the Excel-AddIn shows the corresponding file names etc., see also Dodoni.BasicMathLibrary etc.

Contains basic classes and methods needed for the project. This assembly provide general stuff which is

Provides

- BLAS library (interface structure + a managed fallback implementation),
- LAPACK library (wrapper for native code),
- generic interface for Fast-Fourier-Transformations (FFT) (+ a dummy managed fallback implementation),
- Vector operations (interface structure + a managed fallback implementation),
- interfaces for Special functions,
- interfaces for interpolation and parametrization of curves and surfaces with some basic implementations (linear, spline etc.)
- interfaces for numerical integration, Random Number Generators, Optimization etc.
- implementation for root finding algorithms for polynomials etc.

for a specific wrapper. The Managed Extensibility Framework (MEF) is used to dynamic link some of the external mathematical libraries to the Dodoni.net framework. The following assemblies provides wrapper for specific (native) 3th Party Libraries to enable the use of these Libraries within the Dodoni.net framework:Dodoni.MathLibary.Native.<Name of 3th party Library>

Assembly |
Library |
---|---|

Dodoni.MathLibrary.Native.ACML |
AMD Core Math Library (ACML) Library |

Dodoni.MathLibrary.Native.BLAS |
BLAS Library (Fortran interface) |

Dodoni.MathLibrary.Native.CBLAS |
C-Interface of the BLAS Library (CBLAS) |

Dodoni.MathLibrary.Native.FFTW |
FFTW Library |

Dodoni.MathLibrary.Native.LibM |
LibM, a 64bit software library containing a collection of basic math functions and vector functions |

Dodoni.MathLibrary.Native.MKL |
Math Kernel Library (MKL) Library |

Dodoni.MathLibrary.Native.NLopt |
NLopt, a free/open-source library for nonlinear optimization |

Dodoni.MathLibrary.Native.Yeppp |
Yeppp!, a high-performance SIMD-optimized mathematical library for x86, ARM, and MIPS processors on Windows, Android, Mac OS X, and GNU/Linux systems |

Contains some managed implementation of mathematikcal functions, for example:

- numerical integration algorithms (for example Gauss-Kronrod-Patterson etc.),
- some curve/surface interpolation approaches,
- some Special functions (for example erf(x), erfc(x), LambertW(x) etc.),
- some 1-/n-dimensional optimization algorithm (Brent, Powell, PRAXIS etc.) etc.

Provides

Contains market usages, i.e. implementations for day count conventions, business day conventions, holiday calendars etc.

Provide functionality for a generic Excel Add-In, i.e. extends Excel-DNA by

Serves as Excel Add-In for the Dodoni.net project that provides UDF's (

- A documentation of the API of the Dodoni.net framework is part of the distribution.
- The unit tests of the Dodoni.net project serves as
*living documentation*.

- A documentation of the UDF's (
__u__ser__d__efined__f__unctions) provided by the Excel Add-In of the Dodoni.net project is still not available, but the distribution contains several example Excel sheets. *The name of each user defined function (UDF) of the Add-In starts with 'do' which can be interpreted as***do**for doing or as short-name for**Do**doni.net.

**....write***individual*Excel Add-Ins with Excel-DNA and Dodoni.net?

- Dodoni.BasicComponents.dll,
- Dodoni.XLBasicComponents.dll,
- ExcelDna.Integration.dll.

<DnaLibrary RuntimeVersion="v4.0"> <ExternalLibrary Path="Dodoni.XLBasicComponents.dll" ExplicitExports="true" Pack="true"/> <ExternalLibrary Path="NameOfYourProject.dll" ExplicitExports="true" Pack="true"/> <Reference AssemblyPath="Dodoni.BasicComponents.dll" Pack="true"/> </DnaLibrary>

Of course the above file represents the simplest case only (the entry Pack="true" is optional). If necessary one has to add further references in the .dna file. One may have a deeper look in the documentation of the Excel-DNA project. For the features of the Dodoni.XLBasicComponents assembly we refer to the documentation of the Dodoni.net API. Moreover the distribution contains a simple example project in the repository.

**...extend the Excel Add-In of the Dodoni.net project?**

- Dodoni.BasicComponents.dll,
- Dodoni.XLBasicComponents.dll,
- Dodoni.XLIntegration.dll.

**...use a specific logging?**

```
[Export(typeof(ILogger))]
```

Create or modify the configuration file of the Dodoni.net project or of your individual project in the following way; for more information see BasicComponents:

<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="LoggingSetting" type="Dodoni.BasicComponents.Logging.Configuration.LoggingConfigurationFileSection, Dodoni.BasicComponents"/> </configSections> <LoggingSetting typeName="YourNamespace.YourClass, YourAssemblyName" /> </configuration>

**...create an individual user interface with a separate implementation for Holiday calendar, business day conventions etc.? For example how to link the Dodoni.net framework to a trading system?**

- Dodoni.XLBasicComponents.dll and
- Dodoni.XLIntegration.dll.

Last edited Jul 1, 2015 at 9:27 PM by dodoni, version 70