/* Copyright 2008-2016 Research Foundation State University of New York */
/* This file is part of QUB Express. */
/* QUB Express is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation, either version 3 of the License, or */
/* (at your option) any later version. */
/* QUB Express is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* You should have received a copy of the GNU General Public License, */
/* named LICENSE.txt, in the QUB Express program directory. If not, see */
/* . */
#ifndef QUBXHJC_H
#define QUBXHJC_H
//
// If QUBXHJC_EXPORTS is defined, the decorator QUBXHJC_API exports a symbol.
// Otherwise, QUBXHJC_API imports the symbol.
// This works across MS Visual Studio and gcc.
//
/*
begin_html
Up: Index
end_html
*/
#if defined(_WIN32)
#define QUBXHJC_DLLEXPORT __declspec(dllexport)
#define QUBXHJC_DLLIMPORT __declspec(dllimport)
#else
#define QUBXHJC_DLLEXPORT
#define QUBXHJC_DLLIMPORT
#define __stdcall
#endif
#if !defined(QUBXHJC_EXPORTS)
#define QUBXHJC_API QUBXHJC_DLLIMPORT
#else
#define QUBXHJC_API QUBXHJC_DLLEXPORT
#endif
#ifdef __GNUC__
#define QUBXHJC_VAR_NOT_USED __attribute__ ((unused))
#else
#define QUBXHJC_VAR_NOT_USED
#endif
#ifdef __cplusplus
extern "C" {
#endif
void* QUBXHJC_API qub_hjc_bursts_alloc();
void QUBXHJC_API qub_hjc_bursts_free(void *obj);
void QUBXHJC_API qub_hjc_bursts_append(void *obj, float *durations_ms, int count); // assuming alternation open,closed,open,...,closed,open; count is odd; and tdead applied
double QUBXHJC_API qub_hjc_likelihood(void *bursts, double *Q, int numStates, int numOpen, double tDead_ms, double tCrit_ms, int useCHSvectors);
#ifdef __cplusplus
}
#endif
#endif