Vowpal Wabbit
vwdll.h
Go to the documentation of this file.
1 /*
2 Copyright (c) by respective owners including Yahoo!, Microsoft, and
3 individual contributors. All rights reserved. Released under a BSD
4 license as described in the file LICENSE.
5  */
6 #pragma once
7 
8 // indirect the Win32 so non win32 Microsoft C programs can work
9 #ifdef WIN32
10 #define MS_CONV // use Microsoft library calling conventions
11 #endif
12 
13 // enable wide character (32 bit) versions of functions
14 // these are optional since other compilers may not have wide to narrow char libarray facilities built in.
15 #ifdef WIN32
16 #define USE_CODECVT
17 #endif
18 
19 #ifdef MS_CONV
20 #define VW_CALLING_CONV __stdcall
21 #else
22 #define VW_CALLING_CONV
23 #endif
24 
25 #ifdef MS_CONV
26 
27 #ifdef VWDLL_EXPORTS
28 #define VW_DLL_MEMBER __declspec(dllexport)
29 #else
30 #define VW_DLL_MEMBER __declspec(dllimport)
31 #endif
32 
33 #else
34 
35 #ifdef VWDLL_EXPORTS
36 #define VW_DLL_MEMBER __attribute__((__visibility__("default")))
37 #else
38 #define VW_DLL_MEMBER
39 #endif
40 
41 #endif
42 
43 #ifdef __cplusplus
44 extern "C"
45 {
46 #endif
47 
48 #ifdef __cplusplus
49 #define VW_TYPE_SAFE_NULL nullptr
50 #else
51 #define VW_TYPE_SAFE_NULL NULL
52 #endif
53 
54  typedef void* VW_HANDLE;
55  typedef void* VW_EXAMPLE;
56  typedef void* VW_LABEL;
57  typedef void* VW_FEATURE_SPACE;
58  typedef void* VW_FEATURE;
59  typedef void* VW_IOBUF;
60 
63 
64 #ifdef USE_CODECVT
65  VW_DLL_MEMBER VW_HANDLE VW_CALLING_CONV VW_Initialize(const char16_t* pstrArgs);
66  VW_DLL_MEMBER VW_HANDLE VW_CALLING_CONV VW_InitializeEscaped(const char16_t* pstrArgs);
67 #endif
68  VW_DLL_MEMBER VW_HANDLE VW_CALLING_CONV VW_InitializeA(const char* pstrArgs);
69  VW_DLL_MEMBER VW_HANDLE VW_CALLING_CONV VW_InitializeEscapedA(const char* pstrArgs);
71  const char* pstrArgs, const char* modelData, size_t modelDataSize);
73  const char* pstrArgs, const char* modelData, size_t modelDataSize);
74  VW_DLL_MEMBER VW_HANDLE VW_CALLING_CONV VW_SeedWithModel(VW_HANDLE handle, const char* extraArgs);
75 
76  VW_DLL_MEMBER void VW_CALLING_CONV VW_Finish_Passes(VW_HANDLE handle);
77  VW_DLL_MEMBER void VW_CALLING_CONV VW_Finish(VW_HANDLE handle);
78 
80  VW_HANDLE handle, const char* label, VW_FEATURE_SPACE features, size_t len);
81 
82  VW_DLL_MEMBER VW_FEATURE_SPACE VW_CALLING_CONV VW_InitializeFeatureSpaces(size_t len);
83  VW_DLL_MEMBER VW_FEATURE_SPACE VW_CALLING_CONV VW_GetFeatureSpace(VW_FEATURE_SPACE first, size_t index);
84  VW_DLL_MEMBER VW_FEATURE_SPACE VW_CALLING_CONV VW_ExportExample(VW_HANDLE handle, VW_EXAMPLE e, size_t* plen);
85  VW_DLL_MEMBER void VW_CALLING_CONV VW_ReleaseFeatureSpace(VW_FEATURE_SPACE features, size_t len);
86 #ifdef USE_CODECVT
87  VW_DLL_MEMBER VW_EXAMPLE VW_CALLING_CONV VW_ReadExample(VW_HANDLE handle, const char16_t* line);
88 #endif
89  VW_DLL_MEMBER VW_EXAMPLE VW_CALLING_CONV VW_ReadExampleA(VW_HANDLE handle, const char* line);
90 
91  VW_DLL_MEMBER void VW_CALLING_CONV VW_StartParser(VW_HANDLE handle);
92  VW_DLL_MEMBER void VW_CALLING_CONV VW_EndParser(VW_HANDLE handle);
93 
94  VW_DLL_MEMBER VW_EXAMPLE VW_CALLING_CONV VW_GetExample(VW_HANDLE handle);
95  VW_DLL_MEMBER void VW_CALLING_CONV VW_FinishExample(VW_HANDLE handle, VW_EXAMPLE e);
96  VW_DLL_MEMBER float VW_CALLING_CONV VW_GetLabel(VW_EXAMPLE e);
98  VW_DLL_MEMBER float VW_CALLING_CONV VW_GetInitial(VW_EXAMPLE e);
101  VW_DLL_MEMBER void* VW_CALLING_CONV VW_GetMultilabelPredictions(VW_EXAMPLE e, size_t* plen);
102  VW_DLL_MEMBER float VW_CALLING_CONV VW_GetTopicPrediction(VW_EXAMPLE e, size_t i);
103  VW_DLL_MEMBER float VW_CALLING_CONV VW_GetActionScore(VW_EXAMPLE e, size_t i);
105  VW_DLL_MEMBER size_t VW_CALLING_CONV VW_GetTagLength(VW_EXAMPLE e);
106  VW_DLL_MEMBER const char* VW_CALLING_CONV VW_GetTag(VW_EXAMPLE e);
108  VW_DLL_MEMBER float VW_CALLING_CONV VW_GetConfidence(VW_EXAMPLE e);
110  VW_HANDLE handle, VW_FEATURE_SPACE feature_space, const char* name);
111  VW_DLL_MEMBER void VW_CALLING_CONV VW_InitFeatures(VW_FEATURE_SPACE feature_space, size_t features_count);
112  VW_DLL_MEMBER VW_FEATURE VW_CALLING_CONV VW_GetFeature(VW_FEATURE_SPACE feature_space, size_t index);
113  VW_DLL_MEMBER void VW_CALLING_CONV VW_SetFeature(VW_FEATURE feature, size_t index, size_t feature_hash, float value);
114  VW_DLL_MEMBER VW_FEATURE VW_CALLING_CONV VW_GetFeatures(VW_HANDLE handle, VW_EXAMPLE e, size_t* plen);
116 #ifdef USE_CODECVT
117  VW_DLL_MEMBER size_t VW_CALLING_CONV VW_HashSpace(VW_HANDLE handle, const char16_t* s);
118  VW_DLL_MEMBER size_t VW_CALLING_CONV VW_HashSpaceStatic(const char16_t* s, const char16_t* h);
119 #endif
120  VW_DLL_MEMBER size_t VW_CALLING_CONV VW_HashSpaceA(VW_HANDLE handle, const char* s);
121  VW_DLL_MEMBER size_t VW_CALLING_CONV VW_HashSpaceStaticA(const char* s, const char* h);
122 #ifdef USE_CODECVT
123  VW_DLL_MEMBER size_t VW_CALLING_CONV VW_HashFeature(VW_HANDLE handle, const char16_t* s, size_t u);
124  VW_DLL_MEMBER size_t VW_CALLING_CONV VW_HashFeatureStatic(
125  const char16_t* s, size_t u, const char16_t* h, unsigned int num_bits);
126 #endif
127  VW_DLL_MEMBER size_t VW_CALLING_CONV VW_HashFeatureA(VW_HANDLE handle, const char* s, size_t u);
129  const char* s, size_t u, const char* h, unsigned int num_bits);
130 
131  VW_DLL_MEMBER float VW_CALLING_CONV VW_Learn(VW_HANDLE handle, VW_EXAMPLE e);
132  VW_DLL_MEMBER float VW_CALLING_CONV VW_Predict(VW_HANDLE handle, VW_EXAMPLE e);
133  VW_DLL_MEMBER float VW_CALLING_CONV VW_PredictCostSensitive(VW_HANDLE handle, VW_EXAMPLE e);
134  // deprecated. Please use either VW_ReadExample for parsing, or VW_ImportExample for example construction
135  VW_DLL_MEMBER void VW_CALLING_CONV VW_AddLabel(VW_EXAMPLE e, float label, float weight, float base);
136  // deprecated. Please use either VW_ReadExample for parsing, or VW_ImportExample for example construction
137  VW_DLL_MEMBER void VW_CALLING_CONV VW_AddStringLabel(VW_HANDLE handle, VW_EXAMPLE e, const char* label);
138 
139  VW_DLL_MEMBER float VW_CALLING_CONV VW_Get_Weight(VW_HANDLE handle, size_t index, size_t offset);
140  VW_DLL_MEMBER void VW_CALLING_CONV VW_Set_Weight(VW_HANDLE handle, size_t index, size_t offset, float value);
141  VW_DLL_MEMBER size_t VW_CALLING_CONV VW_Num_Weights(VW_HANDLE handle);
142  VW_DLL_MEMBER size_t VW_CALLING_CONV VW_Get_Stride(VW_HANDLE handle);
143 
144  VW_DLL_MEMBER void VW_CALLING_CONV VW_SaveModel(VW_HANDLE handle);
146  VW_HANDLE handle, VW_IOBUF* bufferHandle, char** outputData, size_t* outputSize);
147  VW_DLL_MEMBER void VW_CALLING_CONV VW_FreeIOBuf(VW_IOBUF bufferHandle);
148 
149 #ifdef __cplusplus
150 }
151 #endif
152 
153 #undef VW_TYPE_SAFE_NULL
VW_DLL_MEMBER float VW_CALLING_CONV VW_Get_Weight(VW_HANDLE handle, size_t index, size_t offset)
Definition: vwdll.cpp:313
VW_DLL_MEMBER float VW_CALLING_CONV VW_GetCostSensitivePrediction(VW_EXAMPLE e)
Definition: vwdll.cpp:166
VW_DLL_MEMBER size_t VW_CALLING_CONV VW_Num_Weights(VW_HANDLE handle)
Definition: vwdll.cpp:323
VW_DLL_MEMBER float VW_CALLING_CONV VW_GetLabel(VW_EXAMPLE e)
Definition: vwdll.cpp:146
const VW_HANDLE INVALID_VW_EXAMPLE
Definition: vwdll.h:62
VW_DLL_MEMBER VW_FEATURE VW_CALLING_CONV VW_GetFeatures(VW_HANDLE handle, VW_EXAMPLE e, size_t *plen)
Definition: vwdll.cpp:214
void * VW_FEATURE
Definition: vwdll.h:58
void * VW_IOBUF
Definition: vwdll.h:59
VW_DLL_MEMBER VW_FEATURE_SPACE VW_CALLING_CONV VW_ExportExample(VW_HANDLE handle, VW_EXAMPLE e, size_t *plen)
Definition: vwdll.cpp:109
VW_DLL_MEMBER float VW_CALLING_CONV VW_Learn(VW_HANDLE handle, VW_EXAMPLE e)
Definition: vwdll.cpp:280
VW_DLL_MEMBER VW_FEATURE VW_CALLING_CONV VW_GetFeature(VW_FEATURE_SPACE feature_space, size_t index)
Definition: vwdll.cpp:202
VW_DLL_MEMBER size_t VW_CALLING_CONV VW_GetTagLength(VW_EXAMPLE e)
Definition: vwdll.cpp:174
VW_DLL_MEMBER float VW_CALLING_CONV VW_PredictCostSensitive(VW_HANDLE handle, VW_EXAMPLE e)
Definition: vwdll.cpp:306
VW_DLL_MEMBER VW_FEATURE_SPACE VW_CALLING_CONV VW_InitializeFeatureSpaces(size_t len)
Definition: vwdll.cpp:98
VW_DLL_MEMBER VW_HANDLE VW_CALLING_CONV VW_SeedWithModel(VW_HANDLE handle, const char *extraArgs)
Definition: vwdll.cpp:68
void * VW_LABEL
Definition: vwdll.h:56
void * VW_FEATURE_SPACE
Definition: vwdll.h:57
the core definition of a set of features.
VW_DLL_MEMBER VW_EXAMPLE VW_CALLING_CONV VW_ImportExample(VW_HANDLE handle, const char *label, VW_FEATURE_SPACE features, size_t len)
Definition: vwdll.cpp:92
VW_DLL_MEMBER size_t VW_CALLING_CONV VW_HashSpaceStaticA(const char *s, const char *h)
Definition: vwdll.cpp:241
VW_DLL_MEMBER size_t VW_CALLING_CONV VW_HashFeatureA(VW_HANDLE handle, const char *s, size_t u)
Definition: vwdll.cpp:257
VW_DLL_MEMBER void VW_CALLING_CONV VW_ReturnFeatures(VW_FEATURE f)
Definition: vwdll.cpp:219
VW_DLL_MEMBER size_t VW_CALLING_CONV VW_HashSpaceA(VW_HANDLE handle, const char *s)
Definition: vwdll.cpp:235
VW_DLL_MEMBER size_t VW_CALLING_CONV VW_GetFeatureNumber(VW_EXAMPLE e)
Definition: vwdll.cpp:182
VW_DLL_MEMBER void VW_CALLING_CONV VW_Finish(VW_HANDLE handle)
Definition: vwdll.cpp:87
VW_DLL_MEMBER float VW_CALLING_CONV VW_Predict(VW_HANDLE handle, VW_EXAMPLE e)
Definition: vwdll.cpp:297
VW_DLL_MEMBER size_t VW_CALLING_CONV VW_Get_Stride(VW_HANDLE handle)
Definition: vwdll.cpp:328
VW_DLL_MEMBER VW_HANDLE VW_CALLING_CONV VW_InitializeWithModelEscaped(const char *pstrArgs, const char *modelData, size_t modelDataSize)
Definition: vwdll.cpp:395
VW_DLL_MEMBER VW_FEATURE_SPACE VW_CALLING_CONV VW_GetFeatureSpace(VW_FEATURE_SPACE first, size_t index)
Definition: vwdll.cpp:103
VW_DLL_MEMBER VW_EXAMPLE VW_CALLING_CONV VW_GetExample(VW_HANDLE handle)
Definition: vwdll.cpp:140
VW_DLL_MEMBER float VW_CALLING_CONV VW_GetImportance(VW_EXAMPLE e)
Definition: vwdll.cpp:154
VW_DLL_MEMBER VW_HANDLE VW_CALLING_CONV VW_InitializeWithModel(const char *pstrArgs, const char *modelData, size_t modelDataSize)
Definition: vwdll.cpp:386
VW_DLL_MEMBER VW_HANDLE VW_CALLING_CONV VW_InitializeA(const char *pstrArgs)
Definition: vwdll.cpp:55
VW_DLL_MEMBER void VW_CALLING_CONV VW_Finish_Passes(VW_HANDLE handle)
Definition: vwdll.cpp:76
VW_DLL_MEMBER const char *VW_CALLING_CONV VW_GetTag(VW_EXAMPLE e)
Definition: vwdll.cpp:178
VW_DLL_MEMBER size_t VW_CALLING_CONV VW_GetActionScoreLength(VW_EXAMPLE e)
Definition: vwdll.cpp:292
VW_DLL_MEMBER float VW_CALLING_CONV VW_GetInitial(VW_EXAMPLE e)
Definition: vwdll.cpp:158
VW_DLL_MEMBER void VW_CALLING_CONV VW_AddLabel(VW_EXAMPLE e, float label, float weight, float base)
Definition: vwdll.cpp:269
VW_DLL_MEMBER void VW_CALLING_CONV VW_EndParser(VW_HANDLE handle)
Definition: vwdll.cpp:135
VW_DLL_MEMBER void VW_CALLING_CONV VW_SetFeature(VW_FEATURE feature, size_t index, size_t feature_hash, float value)
Definition: vwdll.cpp:208
VW_DLL_MEMBER size_t VW_CALLING_CONV VW_SetFeatureSpace(VW_HANDLE handle, VW_FEATURE_SPACE feature_space, const char *name)
Definition: vwdll.cpp:190
VW_DLL_MEMBER void VW_CALLING_CONV VW_InitFeatures(VW_FEATURE_SPACE feature_space, size_t features_count)
Definition: vwdll.cpp:196
#define VW_TYPE_SAFE_NULL
Definition: vwdll.h:51
VW_DLL_MEMBER void *VW_CALLING_CONV VW_GetMultilabelPredictions(VW_EXAMPLE e, size_t *plen)
Definition: vwdll.cpp:170
#define VW_DLL_MEMBER
Definition: vwdll.h:38
VW_DLL_MEMBER void VW_CALLING_CONV VW_ReleaseFeatureSpace(VW_FEATURE_SPACE features, size_t len)
Definition: vwdll.cpp:115
VW_DLL_MEMBER size_t VW_CALLING_CONV VW_HashFeatureStaticA(const char *s, size_t u, const char *h, unsigned int num_bits)
Definition: vwdll.cpp:263
float weight
void * VW_EXAMPLE
Definition: vwdll.h:55
VW_DLL_MEMBER VW_HANDLE VW_CALLING_CONV VW_InitializeEscapedA(const char *pstrArgs)
Definition: vwdll.cpp:61
const VW_HANDLE INVALID_VW_HANDLE
Definition: vwdll.h:61
VW_DLL_MEMBER float VW_CALLING_CONV VW_GetPrediction(VW_EXAMPLE e)
Definition: vwdll.cpp:162
VW_DLL_MEMBER void VW_CALLING_CONV VW_FreeIOBuf(VW_IOBUF bufferHandle)
Definition: vwdll.cpp:415
VW_DLL_MEMBER void VW_CALLING_CONV VW_FinishExample(VW_HANDLE handle, VW_EXAMPLE e)
Definition: vwdll.cpp:222
VW_DLL_MEMBER void VW_CALLING_CONV VW_SaveModel(VW_HANDLE handle)
Definition: vwdll.cpp:333
void * VW_HANDLE
Definition: vwdll.h:54
VW_DLL_MEMBER float VW_CALLING_CONV VW_GetTopicPrediction(VW_EXAMPLE e, size_t i)
Definition: vwdll.cpp:150
VW_DLL_MEMBER void VW_CALLING_CONV VW_Set_Weight(VW_HANDLE handle, size_t index, size_t offset, float value)
Definition: vwdll.cpp:318
VW_DLL_MEMBER VW_EXAMPLE VW_CALLING_CONV VW_ReadExampleA(VW_HANDLE handle, const char *line)
Definition: vwdll.cpp:124
VW_DLL_MEMBER float VW_CALLING_CONV VW_GetActionScore(VW_EXAMPLE e, size_t i)
Definition: vwdll.cpp:287
VW_DLL_MEMBER void VW_CALLING_CONV VW_CopyModelData(VW_HANDLE handle, VW_IOBUF *bufferHandle, char **outputData, size_t *outputSize)
Definition: vwdll.cpp:404
#define VW_CALLING_CONV
Definition: vwdll.h:22
VW_DLL_MEMBER void VW_CALLING_CONV VW_StartParser(VW_HANDLE handle)
Definition: vwdll.cpp:130
float f
Definition: cache.cc:40
VW_DLL_MEMBER void VW_CALLING_CONV VW_AddStringLabel(VW_HANDLE handle, VW_EXAMPLE e, const char *label)
Definition: vwdll.cpp:274
VW_DLL_MEMBER float VW_CALLING_CONV VW_GetConfidence(VW_EXAMPLE e)
Definition: vwdll.cpp:186