2020-10-16 13:58:05 +02:00
|
|
|
# -*- mode: org -*-
|
|
|
|
# vim: syntax=c
|
|
|
|
#+TITLE: QMCkl C header
|
|
|
|
|
2020-10-16 19:42:12 +02:00
|
|
|
This file produces the =qmckl.h= header file, which is included in all
|
|
|
|
other C header files. It is the main entry point to the library.
|
2020-10-16 13:58:05 +02:00
|
|
|
|
|
|
|
#+BEGIN_SRC C :tangle qmckl.h
|
|
|
|
#ifndef QMCKL_H
|
|
|
|
#define QMCKL_H
|
|
|
|
#+END_SRC
|
|
|
|
|
|
|
|
* Constants
|
|
|
|
|
|
|
|
** Success/failure
|
|
|
|
|
|
|
|
These are the codes returned by the functions to indicate success
|
|
|
|
or failure. All such functions should have as a return type =qmckl_exit_code=.
|
|
|
|
|
|
|
|
#+BEGIN_SRC C :tangle qmckl.h
|
|
|
|
#define QMCKL_SUCCESS 0
|
|
|
|
#define QMCKL_FAILURE 1
|
|
|
|
|
|
|
|
typedef int qmckl_exit_code;
|
|
|
|
#+END_SRC
|
|
|
|
|
|
|
|
|
|
|
|
** Precision-related constants
|
|
|
|
|
2020-10-16 19:42:12 +02:00
|
|
|
Controlling numerical precision enables optimizations. Here, the
|
|
|
|
default parameters determining the target numerical precision and
|
|
|
|
range are defined.
|
|
|
|
|
2020-10-16 13:58:05 +02:00
|
|
|
#+BEGIN_SRC C :tangle qmckl.h
|
|
|
|
#define QMCKL_DEFAULT_PRECISION 53
|
2020-10-16 19:42:12 +02:00
|
|
|
#define QMCKL_DEFAULT_RANGE 11
|
2020-10-16 13:58:05 +02:00
|
|
|
#+END_SRC
|
|
|
|
|
|
|
|
* Header files
|
|
|
|
|
2020-10-16 19:42:12 +02:00
|
|
|
All the functions expoed in the API are defined in the following
|
|
|
|
header files.
|
|
|
|
|
2020-10-16 13:58:05 +02:00
|
|
|
#+BEGIN_SRC C :tangle qmckl.h
|
2020-10-16 23:56:22 +02:00
|
|
|
#include <stdlib.h>
|
|
|
|
#include "qmckl_memory.h"
|
2020-10-16 13:58:05 +02:00
|
|
|
#include "qmckl_context.h"
|
|
|
|
#+END_SRC
|
|
|
|
|
|
|
|
* End of header
|
|
|
|
|
|
|
|
#+BEGIN_SRC C :tangle qmckl.h
|
|
|
|
#endif
|
|
|
|
#+END_SRC
|
|
|
|
|
|
|
|
|