aboutsummaryrefslogtreecommitdiffstats
path: root/build/scripts/gen_mx_table.py
diff options
context:
space:
mode:
authorAnton Samokhvalov <pg83@yandex.ru>2022-02-10 16:45:17 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:45:17 +0300
commitd3a398281c6fd1d3672036cb2d63f842d2cb28c5 (patch)
treedd4bd3ca0f36b817e96812825ffaf10d645803f2 /build/scripts/gen_mx_table.py
parent72cb13b4aff9bc9cf22e49251bc8fd143f82538f (diff)
downloadydb-d3a398281c6fd1d3672036cb2d63f842d2cb28c5.tar.gz
Restoring authorship annotation for Anton Samokhvalov <pg83@yandex.ru>. Commit 2 of 2.
Diffstat (limited to 'build/scripts/gen_mx_table.py')
-rw-r--r--build/scripts/gen_mx_table.py112
1 files changed, 56 insertions, 56 deletions
diff --git a/build/scripts/gen_mx_table.py b/build/scripts/gen_mx_table.py
index cce69e5cfb..187c21c539 100644
--- a/build/scripts/gen_mx_table.py
+++ b/build/scripts/gen_mx_table.py
@@ -1,75 +1,75 @@
-import sys
-
-tmpl = """
-#include "yabs_mx_calc_table.h"
-
-#include <kernel/matrixnet/mn_sse.h>
-
+import sys
+
+tmpl = """
+#include "yabs_mx_calc_table.h"
+
+#include <kernel/matrixnet/mn_sse.h>
+
#include <library/cpp/archive/yarchive.h>
-
-#include <util/memory/blob.h>
-#include <util/generic/hash.h>
-#include <util/generic/ptr.h>
-#include <util/generic/singleton.h>
-
-using namespace NMatrixnet;
-
-extern "C" {
- extern const unsigned char MxFormulas[];
- extern const ui32 MxFormulasSize;
-}
-
-namespace {
- struct TFml: public TBlob, public TMnSseInfo {
- inline TFml(const TBlob& b)
- : TBlob(b)
- , TMnSseInfo(Data(), Size())
- {
- }
- };
-
+
+#include <util/memory/blob.h>
+#include <util/generic/hash.h>
+#include <util/generic/ptr.h>
+#include <util/generic/singleton.h>
+
+using namespace NMatrixnet;
+
+extern "C" {
+ extern const unsigned char MxFormulas[];
+ extern const ui32 MxFormulasSize;
+}
+
+namespace {
+ struct TFml: public TBlob, public TMnSseInfo {
+ inline TFml(const TBlob& b)
+ : TBlob(b)
+ , TMnSseInfo(Data(), Size())
+ {
+ }
+ };
+
struct TFormulas: public THashMap<size_t, TAutoPtr<TFml>> {
- inline TFormulas() {
- TBlob b = TBlob::NoCopy(MxFormulas, MxFormulasSize);
- TArchiveReader ar(b);
- %s
- }
-
+ inline TFormulas() {
+ TBlob b = TBlob::NoCopy(MxFormulas, MxFormulasSize);
+ TArchiveReader ar(b);
+ %s
+ }
+
inline const TMnSseInfo& at(size_t n) const noexcept {
- return *find(n)->second;
- }
- };
-
- %s
-
- static func_descr_t yabs_funcs[] = {
- %s
- };
-}
-
-yabs_mx_calc_table_t yabs_mx_calc_table = {YABS_MX_CALC_VERSION, 10000, 0, yabs_funcs};
-"""
-
+ return *find(n)->second;
+ }
+ };
+
+ %s
+
+ static func_descr_t yabs_funcs[] = {
+ %s
+ };
+}
+
+yabs_mx_calc_table_t yabs_mx_calc_table = {YABS_MX_CALC_VERSION, 10000, 0, yabs_funcs};
+"""
+
if __name__ == '__main__':
init = []
body = []
defs = {}
-
+
for i in sys.argv[1:]:
name = i.replace('.', '_')
num = long(name.split('_')[1])
-
+
init.append('(*this)[%s] = new TFml(ar.ObjectBlobByKey("%s"));' % (num, '/' + i))
-
+
f1 = 'static void yabs_%s(size_t count, const float** args, double* res) {Singleton<TFormulas>()->at(%s).DoCalcRelevs(args, res, count);}' % (name, num)
f2 = 'static size_t yabs_%s_factor_count() {return Singleton<TFormulas>()->at(%s).MaxFactorIndex() + 1;}' % (name, num)
-
+
body.append(f1)
body.append(f2)
-
+
d1 = 'yabs_%s' % name
d2 = 'yabs_%s_factor_count' % name
-
+
defs[num] = '{%s, %s}' % (d1, d2)
-
+
print tmpl % ('\n'.join(init), '\n\n'.join(body), ',\n'.join((defs.get(i, '{nullptr, nullptr}') for i in range(0, 10000))))