If you did not install ANSI C support originally, then you can use the Windows Control Panel to Modify the NI-DAQmx installation to include ANSI C Support. (earlier versions) C:\Program Files\National Instruments\CVI80\extlib\borlanNIDAQmx.lib.(64-bit OS): C:\Program Files (x86)\National Instruments\Shared\CVI\ExtLib\borland\NIDAQmx.lib.(32-bit OS): C:\Program Files\National Instruments\Shared\CVI\ExtLib\borland\NIDAQmx.lib.In current versions of NI-DAQmx, this import library is included with NI-DAQmx ANSI C support, and the import library is located here: You should be able to compile your applications against the NIDAQmx.h header file and link against the appropriate version of the import library. This is because the import library is used when LabWindows/CVI is running in Borland compatibility mode or when LabWindows/CVI users use Borland as their external compiler. In earlier versions, the import library was only installed with NI-DAQmx LabWindows™/CVI™ support. This import library is only installed with NI-DAQmx ANSI C support. NI-DAQmx until version 14 included C import library for Borland.
However, in case of conflicts, faster execution speed is always given priority over smaller code size.SolutionNI-DAQmx 15 and up does not include the C import library for Borland.
The program code has to be as compact as possible. (After all, you did not buy your fast computer for nothing!) This is true even - and perhaps especially - for seemingly nonsense arguments, with the single exception of the non-numbers INF and NAN, which occur themselves only as a result of serious errors in other functions.īy all possible means, greatest execution speed must be attained. They may for no reason simply crash, but have to perform a decent error treatment. Mathematical functions must be "safe" under all circumstances. (Textbook formulas do not need to treat these situations separately, as they theoretically assume infinite accuracy of intermediate results an actual implementation, however, has to work with the limited accuracy given by real-life processors.) To this end, the various cases have to be distinguished with pedantic care. Especially for complex functions, this necessitates a very thorough treatment of many different situations. Without any compromise, top priority is always given to the mathematically correct result, with the accuracy demanded for the respective data type. In contrast to the written-down-and-compiled textbook formulas of most other available complex libraries (including those coming with Visual C++ and the Borland compilers), the implementation of CMATH was guided by the following rules: Only for the most simple tasks, alternative inline C++ functions are used in the C++ version.Īs far as the scope of CMATH overlaps with the complex class implementations of Visual C++, Borland C++, and Delphi, CMATH is a high-quality replacement for the latter, which are all quite inefficient and inaccurate. Superior speed, accuracy and safety are achieved through the implementation in Assembly language (as opposed to the compiled or inline code of available complex C++ class libraries). As far as possible, all functions have the same names in the Pascal/Delphi version as in the C/C++ version. It is also included in the OptiVec package.Īll functions may alternatively be called from classic C and Pascal/Delphi with type-specific function names (like cf_sin, cd_exp, pe_sqrt), or from C++ and Delphi with overloaded function names and operators (like sin, exp, sqrt, operator + operators only in C++).
CMATH is available as a stand-alone product. CMATH for Borland C/C++ is a useful and comprehensive library for complex-number arithmetics and mathematics, both in cartesian and in polar coordinates, for C/C++ and Pascal/Delphi compilers.