CLEAN
Valuation library for mortgage-backed securities
Getting Started

Version: 6.3.4
Date: 20210730
Copyright (c) 2021, Andrew Kalotay Associates. All rights reserved.

Building in C++

  • Header files are in include directory
    • If you want to move the header files, you must preserve directory hierachy
  • Requires C++ 98 or newer compiler and standard C++ library
  • Link to shared library:
    • Windows:
      • WIN64/aka_clean.lib (stub)
      • WIN64/aka_clean.dll
    • Linux
      • LINUX64/libaka_clean.so
    • OS X
      • MACOSX64/libaka_clean.dylib
  • Running client app
    • Windows: Do one of the following:
      • Put aka_clean.dll in same directory as app
      • Put aka_clean.dll in a directory listed in the environment variable PATH
    • Linux: Put libaka_clean.so into a directory listed in the environment variable LD_LIBRARY_PATH
    • OS X: Put libaka_clean.dylib into a directory listed in the environment variable DYLD_LIBRARY_PATH

Building in Java

  • Compiling client app
    • java/aka_clean.jar must be in classpath
  • Running Java client app
    • java/aka_clean.jar must be in classpath
    • Directory containing native C++ library must be listed in java.library.path

Writing Code

Important

All input values are in absolute decimals. For example, 10% is entered as 0.10

Preliminaries for Java only

Namespaces

  • All classes and structs are in the namespace AndrewKalotayAssociates::Clean
  • Data structs declared in the namespace AndrewKalotayAssociates::Common are all pulled into the namespace AndrewKalotayAssociates::Clean
  • Input data structs are in subnamespace Input.
  • Output data structs are in subnamespace Output.

C++, C#, Java