Berkeley CSUA MOTD:Entry 54650
 Berkeley CSUA MOTD Match all Match any Histogram Relevance Most current Least current

 WIKI | FAQ | Tech FAQ http://csua.com/feed/
2021/09/20 [General] UID:1000 Activity:popular
 9/20

 2013/4/9-5/18 [Computer/SW/Languages/C_Cplusplus, Computer/SW/Apps, Computer/SW/Languages/Perl] UID:54650 Activity:nil ```4/04 Is there a good way to diff 2 files that consist of columns of floating point numbers, such that it only tells me if there's a difference if the numbers on a given line differ by at least a given ratio? Say, 1%? \_ Use Excel. 1. Open foo.txt in Excel. It should convert all numbers to cells in column A. 2. Open bar.txt in Excel. Ditto. 3. Create a new file in Excel. 4. In cell A1 of the new file, enter this: =IF(foo.txt!A1=0, IF(bar.txt!A1=0, "same", "different"), IF(ABS((b\ ar.txt!A1-foo.txt!A1)/foo.txt!A1)<1%, "same", "different")) 5. Select cell A1. Hit Ctrl-C to copy. 6. Select the same number of cells as the number of cells that exist in foo.txt or bar.txt. Hit Ctrl-V to paste. 7. Hit Ctrl-F. In "Find what:", enter "different". In "Look in:", choose "Values". Click "Find All". Another way is to write a C program to read the two files using fscanf("%f") an do the arithmatic. \_ does this help? #!/usr/bin/python import sys threshold = float(sys.argv[3] if len(sys.argv) > 3 else 0.0000001) list1 = [float(v) for v in open(sys.argv[1]).readlines()] list2 = [float(v) for v in open(sys.argv[2]).readlines()] line = 1 for v1, v2 in zip(list1, list2): if abs((v1 - v2) / v1) >= threshold: print "Line %d different (%f != %f)" % (line, v1, v2) line += 1 \_ Something like this might work (\$t is your threshold): \$ perl -e '\$t = 0.1 ; while (<>) { chomp(\$_); (\$i,\$j) = split(/ \t/, \$_); if (\$i > ((1+\$t)*\$j) || \$i < ((1-\$t)*j)) { print "\$_\n"; }}' < file```
2021/09/20 [General] UID:1000 Activity:popular
 9/20

You may also be interested in these entries...
 2014/1/14-2/5 [Computer/SW/Languages/C_Cplusplus] UID:54763 Activity:nil ```1/14 Why is NULL defined to be "0" in C++ instead of "((void *) 0)" like in C? I have some overloaded functtions where one takes an integer parameter and the other a pointer parameter. When I call it with "NULL", the compiler matches it with the integer version instead of the pointer version which is a problem. Other funny effect is that sizeof(NULL) is different from sizeof(myPtr). Thanks. ... ```
 2013/4/29-5/18 [Computer/SW/Languages/C_Cplusplus, Computer/SW/Compilers] UID:54665 Activity:nil ```4/29 Why were C and Java designed to require "break;" statements for a "case" section to terminate rather than falling-through to the next section? 99% of the time poeple want a "case" section to terminate. In fact some compilers issue warning if there is no "break;" statement in a "case" section. Why not just design the languages to have termination as the default behavior, and provide a "fallthru;" ... ```
 2012/7/19-11/7 [Computer/SW/Languages/C_Cplusplus] UID:54439 Activity:nil ```7/19 In C or C++, how do I write the code of a function with variable number of parameters in order to pass the variable parameters to another function that also has variable number of parameters? Thanks. \_ The usual way (works on gcc 3.0+, Visual Studio 2005+): #define foo(fmt, ...) printf(fmt, ##__VA_ARGS__) The cool new way (works on gcc 4.3+): ... ```
 2011/3/7-4/20 [Computer/SW/Languages/C_Cplusplus] UID:54056 Activity:nil ```3/7 I have a C question. I have the following source code in two identical files t.c and t.cpp: #include int main(int argc, char *argv[]) { const char * const * p1; const char * * p2; ... ```
 2011/2/5-19 [Computer/SW/Languages/C_Cplusplus] UID:54027 Activity:nil ```2/4 random C programming/linker fu question. If I have int main() { printf("%s is at this adddr %p\n", "strlen", strlen); } and soda's /proc/sys/kernel/randomize_va_space is 2 (eg; on) why is strlen (or any other libc fn) at the same address every time? \_ I don't pretend to actually know the right answer to this, but could it have something to do with shared libraries? ... ```
 2010/2/12-3/9 [Computer/SW/Languages/C_Cplusplus] UID:53708 Activity:nil ```2/12 I need a way to make a really big C++ executable (~200MBs) that does nothing. No static initialization either. Any ideas? \_ static link in lots of libraries? \_ #define a i=0; i=0; i=0; i=0; i=0; i=0; i=0; i=0; i=0; i=0; #define b a a a a a a a a a a #define c b b b b b b b b b b ... ```
 2009/9/28-10/8 [Computer/SW/Languages/C_Cplusplus] UID:53409 Activity:nil ```9/28 http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html Java is #1!!! Followed by C, PHP, C++, Visual Basic, Perl, C#, Python, Javascript, then finally Ruby. The good news is Pascal is going waaaay back up! \_ C is still more popular than C++? I feel much better about myself now. ... ```
 2009/8/7-14 [Computer/SW/Languages/C_Cplusplus, Computer/SW/Languages/Java] UID:53252 Activity:high ```8/6 In C one can do "typedef int my_index_t;". What's the equivalent in C#? Thanks. \_ C#? Are you serious? Is this what the class of 2009 learn? \_ No. I have to learn .NET code at work. I am Class of '93. \_ python is what 2009 learns, see the motd thread about recent cal courses and languages ... ```
 2009/7/21-24 [Computer/SW/Languages/Java] UID:53168 Activity:moderate ```7/20 For those who care btw, it looks like eclipse is now A Standard Tool at UCB ugrad cs, probably replaced emacs. Furthermore, people get angry at seeing Makefiles, (since eclispe takes care of that). I guess it's just a sign of the times. \_ The more people at my work use eclipse the less the code is managable in emacs. I'm not sure which application's fault ... ```