/********************************************************
** NAME
** dll_erlc.c
**
** DESCRIPTION
** Front end to the ERLANG C DLL
**
** NOTES
** Best viewed with tabstops set to 4
**
** AUTHOR  & COPYRIGHT 2000
** Robert Clark, Erlang Software, http://www.erlang-software.com/
**
*********************************************************/
#if     defined(_Windows)
#include <windows.h> 
#else
#include "win_eqiv.h"
#endif
#include "erl_math.h"
#include "matherlc.h"
#include "dll_erlc.h"
/******************************************************
			Public Functions
******************************************************/
//
// NAME
// ERLC_CalcNumServ
//
// DESCRIPTION
// Calculates  the number of servers required to meet specifications
//
// NOTES
// dADA_AHT is the ratio of:
//  ADA (Average Delay, All Requests), and
//  AHT (Average Holding Time).
//  Both must be in the same units (eg. both in seconds, or both in minutes)
//
// AUTHOR  & COPYRIGHT 2000
// Robert Clark, Erlang Software, http://www.erlang-software.com/
//
int FAR pascal _export  	//Return: Required number of servers
    ERLC_CalcNumServ (
    double   dErlangs, 		//Offered Traffic (erlangs)
    double   dADA_AHT     	//(ADA)/(AHT) See Notes
    ) {
[code deleted]
}
//
// NAME
// ERLC_CalcErlangs
//
// DESCRIPTION
// Calculates the max. offered traffic a system can support.
//
// NOTES
// dADA_AHT is the ratio of:
//  ADA (Average Delay, All Requests), and
//  AHT (Average Holding Time).
//  Both must be in the same units (eg. both in seconds, or both in minutes)
//
// AUTHOR  & COPYRIGHT 2000
// Robert Clark, Erlang Software, http://www.erlang-software.com/
//
double FAR pascal _export  	//Return: max. offered traffic (erlangs)
    ERLC_CalcErlangs (
    int      iNumServ, 		//Number of available servers
    double   dADA_AHT     	//(ADA)/(AHT) See Notes
    )    {
    [code deleted]
}
//
// NAME
// ERLC_CalcProbADA_AHT
//
// DESCRIPTION
// Calculates blocking probablity from the ADA/AHT ratio
//
// NOTES
// dADA_AHT is the ratio of:
//  ADA (Average Delay, All Requests), and
//  AHT (Average Holding Time).
//  Both must be in the same units (eg. both in seconds, or both in minutes)
//
// AUTHOR  & COPYRIGHT 2000
// Robert Clark, Erlang Software, http://www.erlang-software.com/
//
double FAR pascal _export 	//Return: blocking probability 0< <1
    ERLC_CalcProbADA_AHT(
    double  dErlangs, 		//Offered Traffic (erlangs)
    double  dADA_AHT     	//(ADA)/(AHT) See Notes
    )      {
    [code deleted]
}
//
// NAME
// ERLC_CalcProb
//
// DESCRIPTION
// Calculates the blocking probability
//
// NOTES
//
// AUTHOR  & COPYRIGHT 2000
// Robert Clark, Erlang Software, http://www.erlang-software.com/
//
double FAR pascal _export   //Return: Blocking probability, 0< <1
    ERLC_CalcProb(
    double   dErlangs, 	    //Offered Traffic (erlangs)
    int      iNumServ  	    //Number of available servers
    )    {
    [code deleted]
}
//
// NAME
// ERLC_CalcPn
//
// DESCRIPTION
// Calculates probability of exactly 'n' requests in the system
//
// NOTES
//
// AUTHOR  & COPYRIGHT 2000
// Robert Clark, Erlang Software, http://www.erlang-software.com/
//
double FAR pascal _export   //Return:Probability of 'n' requests in system, 0< <1
    ERLC_CalcPn (
    double  dErlangs, 	    //Offered Traffic (erlangs)
    int     iNumServ, 	    //Number of available servers
    int     iN   	    //'n'
    )   {
    [code deleted]
}
//
// NAME
// ERLC_CalcCarry
//
// DESCRIPTION
// Calculates  traffic carried by the system
//
// NOTES
// There are no losses in the Erlang C model, so carried traffic must
// equal offered traffic
//
// AUTHOR  & COPYRIGHT 2000
// Robert Clark, Erlang Software, http://www.erlang-software.com/
//
double FAR pascal _export  	//Return: carried traffic (erlangs)
    ERLC_CalcCarry (
    double   dErlangs  		//Offered Traffic (erlangs)
    )     {
    [code deleted]
}
//
// NAME
// ERLC_CalcCarryN
//
// DESCRIPTION
// Calculates the traffic carried by server 'n'
//
// NOTES
// It is assumed that requests are preferentially serviced by
// the 'lower' numbered servers....ie. if there is one request in
// service, then server '1' handles it. If there are 2 requests
// in the system, then servers '1 and 2' handle them, etc.
//
// AUTHOR  & COPYRIGHT 2000
// Robert Clark, Erlang Software, http://www.erlang-software.com/
//
double FAR pascal _export  	//Return: Traffic carried by server 'n' (erlangs)
    ERLC_CalcCarryN (
    double   dErlangs, 		//Offered Traffic (erlangs)
    int      iNumServ, 		//Number of available servers
    int      iN   		//'n'
    )     {
    [code deleted]
}
//
// NAME
// ERLC_CalcLost
//
// DESCRIPTION
// Calculates the traffic lost
//
// NOTES
// As there can be no losses in an Erlang C model, the result is
// always zero.
//
// AUTHOR  & COPYRIGHT 2000
// Robert Clark, Erlang Software, http://www.erlang-software.com/
//
double FAR pascal _export ERLC_CalcLost (
    void
    ) {
    return 0.0;
}
//
// NAME
// ERLC_CalcAQA
//
// DESCRIPTION
// Calculates the Average Queue length, for All requests.
// Return value is in units of 'requests'.
//
// NOTES
//
// AUTHOR  & COPYRIGHT 2000
// Robert Clark, Erlang Software, http://www.erlang-software.com/
//
double FAR pascal _export 	//Return: Ave Queue length - all requests
    ERLC_CalcAQA (
    double   dErlangs, 		//Offered Traffic (erlangs)
    int      iNumServ 		//Number of available servers
    )       {
    [code deleted]
}
//
// NAME
// ERLC_CalcAQD
//
// DESCRIPTION
// Calculates the Average Queue length, for Delayed requests.
// Return value is in units of 'requests'.
//
// NOTES
//
// AUTHOR  & COPYRIGHT 2000
// Robert Clark, Erlang Software, http://www.erlang-software.com/
//
double FAR pascal _export 	//return: Ave Queue length - delayed requests
    ERLC_CalcAQD (
    double   dErlangs, 		//Offered Traffic (erlangs)
    int      iNumServ 		//Number of available servers
    )    {
    [code deleted]
}
//
// NAME
// ERLC_CalcADA
//
// DESCRIPTION
// Calculates the Average Delay, for All requests.
// Return value is in same units as 'AHT'. For example, if
// AHT is in seconds, then so is returned result.
//
// NOTES
//
// AUTHOR  & COPYRIGHT 2000
// Robert Clark, Erlang Software, http://www.erlang-software.com/
//
double FAR pascal _export  	//return: Ave Delay - All requests
    ERLC_CalcADA (
    double   dErlangs, 		//Offered Traffic (erlangs)
    int      iNumServ, 		//Number of available servers
    double   dAHT       	//Ave Holding Time
    )       {
    [code deleted]
}
//
// NAME
// ERLC_CalcADD
//
// DESCRIPTION
// Calculates the Average Delay, for Delayed requests.
// Return value is in same units as 'AHT'. For example, if
// AHT is in seconds, then so is returned result.
//
// NOTES
//
// AUTHOR  & COPYRIGHT 2000
// Robert Clark, Erlang Software, http://www.erlang-software.com/
//
double FAR pascal _export  	//return: Ave Delay - Delayed requests
    ERLC_CalcADD (
    double   dErlangs, 		//Offered Traffic (erlangs)
    int      iNumServ, 		//Number of available servers
    double   dAHT       	//Ave Holding Time
    )     {
    [code deleted]
}

 

Send mail to [email protected] with questions or comments about this web site.
Last modified: March 25, 2015