08-05-2011
It wasn't about the imul instruction of intel, it was about GCC insisting that my "C" language statement wasn't a 32x32bit multiply just because the constant had the 31st bit set. GCC insisted that it should be done as a 64x32bit multiply. I saw no reason for a 2^17 * 2^32 should be done differently than a 2^17 *( 2^32 >> 1) considering they were unsigned multiplication. No reason to take high 32 of 2^17 = 0 * 2290649225 + low 32 of 2^17 * 2290649225, add in sign adjustment for the 2^17 for the answer. Especially since it doesn't do that on 2^17 * (2^32 >> 1).
I probably really shouldn't care how a compiler interprets a "C" statement. By the use of one "unsigned" where you normally don't need it, I can execute 4 instructions instead of 12 instructions. I never knew that it considered converting to "unsigned long long" was the same as converting to "long long" in this one instance. On a PPC execute 9 instructions instead of 21. And if done ppc asm only 5 (extra mr).
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
I'am doing a tutorial where a simple calculator was given, then i noticed that you can't actually multiply
this is how i have approached the problem so far. i just need if the user enters "*"
to change it to "/*" ,is it possible? i know that * means the name of the last file in the directory... (8 Replies)
Discussion started by: greekozz
8 Replies
2. Linux
Hello there,
how do i multiply a fraction and a whole number? Example 20% of 50,000.
I had gotten 0.2 using the following:
chk=echo 20 100 | awk `{print $1/$2}`
echo $chk
$chk \* 50000 displays the error: non-numeric expression. (1 Reply)
Discussion started by: alby
1 Replies
3. Solaris
AIM- Install Oracle 11g on Solaris using VMWare
Steps
1.Logged on as root
2.Created subfolders à /usr/local/bin & /usr/local/bin/gcc
3.Downloaded gcc & libiconv & unzipped them on my harddrive & burnt them on CD
4.Copied files from CD to /usr/local/bin/gcc
5.Terminal (root) à pkgadd -d... (8 Replies)
Discussion started by: Ackers
8 Replies
4. Shell Programming and Scripting
Suppose i have a file A
1*2*3*4
2*4*4*22
and second file B
2*3*4*5
4*4*6*7
By multiplying file A by file B that is file A by first column in file B respectively
output shud be
2*6*12*20
8*16*24*154
my code is
=$1
next
}
{for (f=1;f<=NF;f++) (2 Replies)
Discussion started by: cdfd123
2 Replies
5. UNIX for Dummies Questions & Answers
Hi,
I am writing a script in Bourne shell
#!/bin/sh
used=`quota -v | tail -1 | awk '{print $2}'`
total=`quota -v | tail -1 | awk '{print $3}'`
echo "$used"
echo "$total"
perc=`expr ${used} / ${total} * 100 | bc`
echo "$perc"
I want to get a percentage of quota used to total limit
I... (5 Replies)
Discussion started by: desai.rishabh
5 Replies
6. UNIX for Dummies Questions & Answers
Hi,
I would like to carry out a multiplication in a for loop but some how I get always zero. The result of the multiplication must be assigned to the variable x.
Here is teh code
for (( i=1;i<=15;i++)); do
x=$( printf "%s\n " 'scale = 10; i*5.0*335.0*3.0/1000.0' | bc)
echo $x $i... (5 Replies)
Discussion started by: f_o_555
5 Replies
7. UNIX for Dummies Questions & Answers
Hi,
i have file1 which looks like:
x1 y1 z1
x2 y2 z2
...(and so on)
and file2 which looks like:
a11 a12 a13
a21 a22 a23
a31 a32 a33
and i want to replace file1 with the following values:
x1' y1' z1'
x2' y2' z2'
...(and so on) (2 Replies)
Discussion started by: ezitoc
2 Replies
8. Shell Programming and Scripting
Hi,
I can't find out how to create correct code to get multiplication of each elements of array. Let's say I enter array into command line (2 3 4 5 6 8) and i need output 2*3*4*5*6*8=5760.
I tried this one, but answer is 0.
for i in $@; do
mult=$((mult*i))done
echo "mult: " $mult
... (4 Replies)
Discussion started by: rimasbimas
4 Replies
9. UNIX for Dummies Questions & Answers
Hi there! I have two files like below
File1(with a header, ~1000 rows, ~50 columns)
ID1 ID2 ID3 ID4 ID5 MI1_A MI1_H MI2_A MI2_H
0 1 0 0 0 1 0 2 1
0 2 0 0 0 2 1 0 1
File2 (without a header, ~50 rows)
MI1 A 0.4 3.1
MI2 B -0.2 0.1
Output
ID2 M1_A M2_A
1 1*0.4 2*-0.2
2 2*0.4 0*-0.2
... (22 Replies)
Discussion started by: Akang
22 Replies
10. UNIX for Beginners Questions & Answers
I have two files. Row id in File1 matches the column id in file2 (starting from column7 )except the last 2 characters. File1 has 50 rows and File 2 has 56 columns. If the id matches I want to multiply the value in column3 of File1 to the entire column in File2. and in the final output print only... (11 Replies)
Discussion started by: Akang
11 Replies