Daylight v4.9
Release Date: 1 February 2008


dt_mer_progob_compute - invoke a program object computation

Generic Prototype

dt_mer_progob_compute(dt_Handle, dt_Handle, dt_Handle, dt_Handle) => dt_Handle

C Prototype

#include "dt_merlin.h"

dt_Handle dt_mer_progob_compute(dt_Handle server, dt_Integer iprogob, dt_Handle string_object, dt_Handle parameters)

FORTRAN Prototype

include ''

integer*4 dt_f_mer_progob_compute(server, iprogob, string_object, parameters)

integer*4 server
integer*4 iprogob
integer*4 string_object
integer*4 parameters


This function sends the contents of "string_object", followed by the contents of "parameters" (a sequence of string objects), to the program object attached to "server" indicated by "iprogob", and returns a string object containing binary data computed by the program object. The returned binary data is ASCII encoded; see dt_binary2ascii(3) for details.

There may be several program objects associated with a particular server; the parameter "iprogob" indicates which one is to perform the computation: program objects are referred to by index, beginning with the first (index 0) to the Nth (index N-1), in the same order as the names returned by dt_mer_progob_getnames(3).

Typically, "string_object" is a SMILES; the program object will generate binary data from it (e.g. generate a fingerprint based on your own algorithms).

The parameter "parameters" is a sequence of string objects, which typically contain parameters to control your binary-data-generation algorithm. These same parameters are also typically passed to dt_mer_progob_compare(3), too. Note that the objects in "parameters" must be strings; to pass numeric data, it must be represented in its ASCII printed form.

The program object associated with a server must support certain specific messages. An example program object can be found in $DY_ROOT/contrib/src/tutorial/C/merlin.

Return Value

Returns a string object containing the binary data computed by the program object.

Related Topics

dt_binary2ascii(3) dt_ascii2binary(3) dt_mer_nprogobs(3) dt_mer_progob2name(3) dt_mer_progob_compare(3) dt_mer_progob_computeparams(3) dt_mer_progob_compareparams(3) dt_mer_server(3)