2008/02/18

Tính trung lập và chính xác của wikipedia

Tính trung lập và chính xác của wikipedia không phải bao giờ cũng có thể tin được . Đặc biệt với những vấn đề phi kĩ thuật, sự xác định tính đúng sai phụ thuộc quá nhiều vào người viết là khó kiểm chứng . Mình đọc entry viết về Lê Lợi ở vi.wikipedia.org và thấy điều này . en.wikipedia.org cũng gặp vấn đề tương tự. Cơ bản việc so sánh những chi tiết lắt nhắt của Lê Lợi và Lưu Bang cũng làm mất tính bách khoa của entry này rồi .

Entry về HCM

http://vi.wikipedia.org/wiki/H%E1%BB%93_Ch%C3%AD_Minh

cũng bị khóa vì có quá nhiều nhiều luồng ý kiến trái ngược nhau. Không ai đủ trung lập để viết về HCM . Nếu đọc kĩ sẽ thấy rất nhiều câu chữ ngô nghê trong entry này .

Thử xem nhé

http://vi.wikipedia.org/w/index.php?title=H%E1%BB%93_Ch%C3%AD_Minh&action=history
http://vi.wikipedia.org/w/index.php?title=H%E1%BB%93_Ch%C3%AD_Minh&diff=1021547&oldid=1021135
( Lẫn văn nói, F*** )
http://vi.wikipedia.org/w/index.php?title=H%E1%BB%93_Ch%C3%AD_Minh&diff=1021135&oldid=1019123
( Link tới Vũ Thư Hiến và BBC bị xóa )
http://vi.wikipedia.org/w/index.php?title=H%E1%BB%93_Ch%C3%AD_Minh&diff=next&oldid=884898
( Một số chi tiết cụ thể về Cải cách ruộng đất bị xoá )

2008/02/14

/usr/lib/libstdc++.so.6 : version 'GLIBCXX_3.4.9' not found (required by my_app) :

/usr/lib/libstdc++.so.6 : version 'GLIBCXX_3.4.9' not found (required by my_app) :

because: libstdc++.so.6 is not compartible with the libstdc++.so we have used to compile my_app:

fix:

export LD_LIBRARY_PATH=/where/the/lib/folder/of/gcc/is:$LD_LIBRARY_PATH

Solaris guile installation

[vuhung@ guile-1.8.3]$uname -a
SunOS 5.10 Generic_127111-05 sun4v sparc SUNW,SPARC-Enterprise-T5220 Solaris

[vuhung@ guile-1.8.3]$./configure --prefix=$HOME --with-gnu-ld LIBS=-L$HOME/lib CFLAGS=-I$HOME/include

make:

numbers.c: In function `scm_log':
numbers.c:6015: error: `_Complex_I' undeclared (first use in this function)
numbers.c:6015: error: (Each undeclared identifier is reported only once
numbers.c:6015: error: for each function it appears in.)
numbers.c: In function `scm_exp':
numbers.c:6081: error: `_Complex_I' undeclared (first use in this function)
gmake[3]: *** [libguile_la-numbers.lo] Error 1

downgrade to guile-1.6.4

./configure --prefix=$HOME --with-gnu-ld LIBS=-L$HOME/lib CFLAGS=-I$HOME/include
make
make install

GNU file ( with magic lib ) vs Solaris standard file command

[Solaris file ]

[vuhung@soltest02 UnitTestLinux]$/usr/bin/file -v
/usr/bin/file: オプションが正しくありません -- v
使用法: file [-dh] [-M mfile] [-m mfile] [-f ffile] <ファイル> ...
file [-dh] [-M mfile] [-m mfile] -f ffile
file -i [-h] [-f ffile] <ファイル> ...
file -i [-h] -f ffile
file -c [-d] [-M mfile] [-m mfile]

[vuhung@soltest02 UnitTestLinux]$file output/real/real_18.png
output/real/real_18.png: PNG イメージデータ

[ GNU file ]

[vuhung@soltest02 UnitTestLinux]$~/bin/file --version
file-4.23
magic file from /export/home/vuhung/share/file/magic

[vuhung@soltest02 UnitTestLinux]$~/bin/file output/real/real_18.png
output/real/real_18.png: PNG image data, 800 x 600, 8-bit colormap, non-interlaced

SPARC Enterprise T5220 multithreading benchmark(仮)

[vuhung@ ]$make clean; time make
real 17m9.996s
user 16m43.709s
sys 0m22.620s

[vuhung@ ]$make clean; time make -j 8
real 2m15.245s
user 16m22.220s
sys 0m21.046s

[vuhung@ ]$make clean; time make -j 64
real 1m37.810s
user 23m30.976s
sys 0m31.164s

[vuhung@ ]$make clean; time make -j 128
real 1m36.545s
user 23m38.538s
sys 0m31.378s

[vuhung@ ~]$uname -a
SunOS 5.10 Generic_127111-05 sun4v sparc SUNW,SPARC-Enterprise-T5220 Solaris

[vuhung@ ~]$prtdiag
システム構成: Sun Microsystems sun4v SPARC Enterprise T5220
メモリーサイズ: 32640 M バイト

========================= CPU ===============================================

CPU CPU
Location CPU Freq Implementation Mask
------------ ----- -------- ------------------- -----
MB/CMP0/P0 0 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P1 1 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P2 2 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P3 3 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P4 4 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P5 5 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P6 6 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P7 7 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P8 8 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P9 9 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P10 10 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P11 11 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P12 12 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P13 13 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P14 14 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P15 15 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P16 16 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P17 17 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P18 18 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P19 19 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P20 20 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P21 21 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P22 22 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P23 23 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P24 24 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P25 25 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P26 26 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P27 27 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P28 28 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P29 29 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P30 30 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P31 31 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P32 32 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P33 33 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P34 34 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P35 35 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P36 36 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P37 37 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P38 38 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P39 39 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P40 40 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P41 41 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P42 42 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P43 43 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P44 44 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P45 45 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P46 46 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P47 47 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P48 48 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P49 49 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P50 50 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P51 51 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P52 52 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P53 53 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P54 54 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P55 55 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P56 56 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P57 57 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P58 58 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P59 59 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P60 60 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P61 61 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P62 62 1167 MHz SUNW,UltraSPARC-T2
MB/CMP0/P63 63 1167 MHz SUNW,UltraSPARC-T2

2008/02/04

Fast, Fixed Point Square Root Computation ?

I did test your magic_sqrt but the time to execute sqrt() and magic_sqrt() are almost the same with my environment:

Linux, RHEL 4., x64, Xeon 3.2G x 2, 4MB memory gcc (GCC) 3.4.6 20060404 (Red Hat 3.4.6-3), glib 2.3.4.

Here is the code:

[vuhung@ g++]$gcc -lm sqrt.c
[vuhung@ g++]$./a.out
sqrt time = 0.025689
magic sqrt time = 0.026223
[vuhung@ g++]$cat sqrt.c
#include
#include
#include
#include

float magic_sqrt (float number)
{
long i;
float f = 1.5, x = number/2, y = number;
i = * ( unsigned long * ) &y;
i = 0x5f3759df - ( i >> 1 );
y = * ( float * ) &i;
y = y * (f - x*y*y);
return number * y;

}

int main()
{
long i;

long NUM = 1000000;
float x;

double real, real_begin;
struct timeval tv;
gettimeofday (&tv, NULL);
real_begin = tv.tv_sec + (double) tv.tv_usec * 1e-6;

for(i = 0; i < NUM; i++)
x =sqrt(i + 0.01);

gettimeofday (&tv, NULL);
real = (tv.tv_sec + (double) tv.tv_usec * 1e-6);
printf (" sqrt time = %f\n", real - real_begin);


gettimeofday (&tv, NULL);
real_begin = tv.tv_sec + (double) tv.tv_usec * 1e-6;

for(i = 0; i < NUM; i++)
x = magic_sqrt(i + 0.01);
gettimeofday (&tv, NULL);
real = (tv.tv_sec + (double) tv.tv_usec * 1e-6);
printf ("magic sqrt time = %f\n", real - real_begin);

return 0;

}
http://www.qoheleth.uklinux.net/blog/?p=139
http://themanaworld.org/tmwservdox/mathutils_8cpp-source.html