[Bug 209369] chinese/sunpinyin: Fix build with libc++ 3.8.0

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Sat May 7 22:34:56 UTC 2016


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=209369

--- Comment #5 from Dimitry Andric <dim at FreeBSD.org> ---
FWIW, this worked too:

--- src/slm/thread/slmthread.cpp.orig   2014-11-14 14:17:48 UTC
+++ src/slm/thread/slmthread.cpp
@@ -226,6 +226,30 @@ FILE* fp = NULL;
 CThreadSlm::TNode* levels[16];
 CThreadSlm::TLeaf* lastLevel;

+static inline float
+effectivePr(bool usingLogPr, float a)
+{
+    return usingLogPr ? a / log(2.0f) : -log2(a);
+}
+
+static inline float
+originalPr(bool usingLogPr, float b)
+{
+    return usingLogPr ? b * log(2.0f) : exp2(-b);
+}
+
+static inline float
+effectiveBow(bool usingLogPr, float a)
+{
+    return usingLogPr ? exp(-a) : a;
+}
+
+static inline float
+originalBow(bool usingLogPr, float b)
+{
+    return usingLogPr ? -log(b) : b;
+}
+
 int
 main(int argc, char* argv[])
 {
@@ -250,10 +274,10 @@ main(int argc, char* argv[])

     bool usingLogPr = slm.isUseLogPr();

-    #define EffectivePr(a)  (float((usingLogPr) ? ((a) / log(2.0)) :
(-log2((a)))))
-    #define OriginalPr(b)   (float((usingLogPr) ? ((b) * log(2.0)) :
(exp2(-(b)))))
-    #define EffectiveBow(a) (float((usingLogPr) ? (exp(-(a))) : ((a))))
-    #define OriginalBow(b)  (float((usingLogPr) ? (-log((b))) : ((b))))
+    #define EffectivePr(a)  effectivePr(usingLogPr, (a))
+    #define OriginalPr(b)   originalPr(usingLogPr, (b))
+    #define EffectiveBow(a) effectiveBow(usingLogPr, (a))
+    #define OriginalBow(b)  originalBow(usingLogPr, (b))

     printf("\nfirst pass..."); fflush(stdout);
     for (int lvl = 0; lvl <= slm.getN(); ++lvl) {

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-ports-bugs mailing list