v さん 1999年 11月 24日 16時 08分 12秒

話は変わりますが、Round3の準備はほぼできました。
現在、サンプルには次のコードがあります。

C:
AOS float
SOA float
AOS double float
AOS int
AOS int16

asm:
AOS float

ヘルプも、「ま、書いたのが俺だからこんなものだろう」
という、やや後ろ向きですがそれなりのものができま
した。

と、言うわけで整備班は準備よしです。Round2が盛り上
がってますので、今年いっぱいは始まらないと思います
が、来年3月ごろ?を目標に皆さん覚悟を決めて下さい。

#最近、SuperPIをはじめとするベンチ結果を見るたびに
#ソースがないんじゃなぁと思っちゃいます。特にSuper
#π、あれはビット反転してるんじゃないでしょうか?

v

黒い彗星 さん 1999年 11月 24日 00時 12分 46秒

MASMの件ですが、良く分からないのですが、
Windows.incを見ると作成者がIczelionさんとhutchさん
となっていることから
たぶん人間コンバーターとなってCのインクルードファイルでも
書き直してくれたのではないかと思ってます。
それで、定数とかプロトタイプとか、必要なものだけ
抜き出せば良かったんですが、面倒だったので
そのままインクルードしました。で、このために
DDKではそのままではメイクできないかもしれないと思い、
多分誰もやらないとは思いましたが、念のため書いときました。
でかいDDKダウンロードしてメイクできなかった日には(TwT)
ところでこのMASMパッケージ、調べたところでは
全然怪しくないものらしいのですが、なんかちょっと
怖いような(^^;
STDCALLのパラメータ渡しの方法とか
C++の配列のメモリマップとか
ちょっと考え込みましたが、なんとかなりました。
.XMMにはまいったけど。これすぐ気付きました?
あとalign 32がほしい。
遅くなりましたが、vさんのFPUコード速過ぎです。
あれでSSEに逃げました(^_^)

Danteさん>
憩いの広場見ました。計測してくださってありがとうございます。
僕が書くとちょっと雰囲気変わってしまうので
広場の方に顔を出すのは遠慮させてもらってます。
ただでさえ長くなってしまうので、僕にふってもらうと
メモリリークがおこるので、みなさんどうかお気遣いなく。
ちゃんとお話を楽しく見させてもらってますので。
・・・しかしなんで短く書けないのか(?o?)

v さん 1999年 11月 23日 17時 24分 40秒

> MASMはマイクロソフトのDDKに入っているものじゃなくて

なにかちがうのかな?うるりさんの発言を読むと、
黒い彗星さんはMASMのみでDLLを作ったようで、
興味があります。一時期、その線も検討していま
した。VCを持ってなくても参入できたほうがいい
ですもんね。

> ところで、やっぱりPentium3の実機なしで組まれてたんですか!!!
うるりさんはねぇ、特殊な脳みそを持ってるんです(笑)

> この間、雑誌でCoppermineのL2キャッシュが256ビット幅で、
> それまでのは64ビット幅とかなんとか見たんですが、

Round1,2 ではまったく影響ありません。影響ないので、
逆にCoppermineの結果に興味があります。どっかに隠し
味がないかとか(笑)。Round3では、この部分の評価も
できるようになります。

v


黒い彗星 さん 1999年 11月 23日 00時 27分 38秒

毎度おさわがせしております。
公共の電子を大量に使ってしまうことをお許し下さい。
なんかソースコードにいらんコメントやら、
消し忘れの実験用領域やらあって(*o*)
そして重大なことをわすれてました。
MASMはマイクロソフトのDDKに入っているものじゃなくてhttp://www.pbq.com.au/home/hutch/
のものでした。なんか使いやすいようにまとめてくれて
あるようです。英語いまいち読んでないのでよくわかりませんが。
多分こっちじゃないとインクルードファイルが
ちがうと思います。DDKでかいし。
ところで、やっぱりPentium3の実機なしで組まれてたんですか!!!
マシンなしで特徴とか見切れるとは!
僕なんか、いきなりループ展開で組み始めたのはいいけど、
ことごとく使い物にならず、まわりまわって、これに
落ち着いた次第です。これはまだ展開したものを
やってないんですけど、たぶんおそくなってしまいそう。
展開するのにこんなに技術がいるとは思ってませんでした。
ところで僕イカサマとかやってないですか。いまいち不安です。
この間、雑誌でCoppermineのL2キャッシュが256ビット幅で、
それまでのは64ビット幅とかなんとか見たんですが、
これは影響が大きいでしょうか。
いろいろCPUがでると、それらをくらべるという
趣旨にあっていると思いますが、ちょっとつらいものが...

黒い彗星 さん 1999年 11月 22日 23時 54分 30秒

v様、Kazu様、うるり様>
(呼び方があやしくなってきた(^O^))
お気遣いありがとうございます。
お忙しいところをいろいろ時間をとっていただいているのに
この数日ぱそこんの電源いれてませんでした。
この週末は僕にしてはやたらめずらしくイベントにでかける
という大イベントが(あれ?)あって、とにかくすみません。
行ってた高校の100周年記念の音楽祭が、はっ!
...
lzhにしていただいてホームページに載せていただいてるのを
見ました。!(^O^)/ ぱんぱかぱ〜ん(音)
(しかもバックスラッシュがうてない...)
ああ、なんか漢字の名前なので目立ってる気が...
Round3で名前考え直そうかなあ。でも余計に迷惑が...
それと、僕なんかに気を使っていただくのも心苦しいので
ちょろっと自己紹介を。謎の仮面レーサーで行こうかと思ってた
20代ど真ん中、男、でした。というわけで
適当にしゃべってやってください。
あ、僕のマシン(P3−450)の調子が悪く
正確じゃないと思いますが、一応680cycleくらいだと
でました。
パーティションのひとつもFATがおかしくなってて
最悪です。

v さん 1999年 11月 22日 20時 30分 31秒

黒い彗星さん、はじめまして。vと申します。

参戦歓迎します!インターネットは恐いところ…
かもしれませんが、面白い路地裏もあります。
Round3にもぜひぜひ参加なさってください :-)

#ジョシュアが出たらSocket370にも手を出そうかな、
#と思っています。Dualonとかもね…


v

v さん 1999年 11月 22日 12時 52分 52秒

ええと。

昨日、うるりさんの新コードを測定したのに
アップロードを忘れました。

申し訳ない

v

全充@Kazu さん 1999年 11月 22日 08時 42分 30秒

>お、黒い彗星さんのDLLがUPされましたね。
>知らないうちにDanteさんのDLLの計測結果が
>結果一覧に追加されてる。いつの間に^^;

うるりさん>
一応昨日はお休みをいただきました。
娘の内々の七五三祝いで外出していましたが。

しかし、DLLをそのままリンクするとネスケからはダウンロード
できない方もいらっしゃるのではないでしょうか?

私の環境ではDLLのダウンロードができません。
IEだとOKですが。
LZHはどちらかでもOKだと思います。

#しかし、山口衛里、東京国際女子マラソン、速かったですね、
#凄かったですね。
#高橋尚子私設応援団としては、1月の大阪か、3月の名古屋
#2時間18分台でのぶっちぎり世界新記録を期待します。
#応援団なのにどちらに出るのか知らない。
#走りやすい大阪か、準地元の名古屋か。

うるり さん 1999年 11月 22日 07時 45分 23秒

お、黒い彗星さんのDLLがUPされましたね。
知らないうちにDanteさんのDLLの計測結果が
結果一覧に追加されてる。いつの間に^^;

私はSSEをPIII持ってないので黒い彗星さんのDLLの計測は
できないので、ソースの方をのぞいてみました。
MASMだけでDLLって作れるんですね。知りませんでした^^;
コードはSSE的な、レジスタ5個で一気に内周ループ(18要素)を、
展開&計算するという方法ですね。
私のループコードよりは速そうです^^;

うるり さん 1999年 11月 21日 03時 17分 00秒

Athlonがalpha21264に似てるのは開発者を引っこ抜いたからなんですね。
すっかり忘れてた。

うるり さん 1999年 11月 20日 07時 19分 56秒

>主任さんもOpenGL関係で忙しそうです。
主任さんは多芸な方のようでうらやましい^^;
お〜ぷんじ〜える、いい響きですね。
HardwareT&Lのサポートの1件でDirectXの使いにくさを
再認識させられました。革新中の技術についていくのは
大変ですね。

>#午前様まで飲むのはもうやめよう、と今日も誓うのでした。
「今日も」というところがミソですね^^;
#♪やめられないとまらない〜かる・・(以下自主規制^^;)

全充@Kazu さん 1999年 11月 19日 08時 48分 47秒

>よろしければ計測結果を掲示板の方に書き込んでいただければ

黒い彗星さん、是非お願いします。

主任さんもOpenGL関係で忙しそうです。
ちなみに、主任さんのページです。
http://www5.big.or.jp/~shunin/

#午前様まで飲むのはもうやめよう、と今日も誓うのでした。

うるり さん 1999年 11月 19日 02時 32分 49秒

どうも、うるりです。
>黒い彗星さん
うっ、突っ込まれたらどうしようと思っていたのです・・・
黒い彗星さんにつっこみ返せるほど詳しくなかったりするのです(汗)
ネタ振りはもう少し考えてやらないと駄目ですね^^;
それはさておき(笑)
よろしければ計測結果を掲示板の方に書き込んでいただければ
いろいろ悩めて嬉しいです^^;
SSEはなにかとまだ謎が多いもので。

>全充@Kazuさん
vさん共々お忙しいようですね。
もうすぐ師匠も走る季節ですからね(なんのこっちゃ^^;)

おっと、人のことをいってる間に自分のことしないと(汗)
朝までに間に合うかな^^;;;
うるり@深夜にプリンターフル活動ちう?!

黒い彗星 さん 1999年 11月 18日 23時 57分 06秒

おおっ!
うるりさん、ありがとうございます。
スクロールせずに書いてたので見てませんでした。
さらに、
「黒い三連星」!!!
もしかしてじぇっとすとり〜むあた〜〜つくとかなんとか
いうらしい方のことですか?
しまったあ。よく知らないのに閣下のをまねるのは
まずかったかも。いや、あの、名前何にしようか
考えてぱっとうかんだものですから。
彗星のごとく現れて彗星のごとく去ろうかと(^O^)
ふつうに青い彗星のほうがよかったでしょうか。
ああ、それともやはり「おまえごときがまねするなあああ
!!!」と全国シャア様親衛隊のお姉さまに
いじめられるかも。うわあああ、おゆるしを!
もうパニック状態です。
でもほんとにまずかったら即刻変えます。
なんか違う掲示板になってしまったようですみません。
では。
皆様にディアナ様とキエル様のご加護がありますように。

黒い彗星 さん 1999年 11月 18日 23時 41分 44秒

Kazuさん>
お忙しいところすみません。
なにも参考にならないコードだと思いますので
思いっきり暇ができたときでいいです。
ちょっと参加させてもらいたくて、
つい書きこんでしまいました。

全充@Kazu さん 1999年 11月 18日 08時 53分 19秒

黒い彗星さん>
メール(DLL)受け取りました。
早急に?みなさんがダウンロードできるようにします。
しばらくお待ちください。

#あーぁ、今日(昨日?)も午前様
#今は会社にいる私っていったい

うるり さん 1999年 11月 18日 01時 34分 15秒

>zodiaqさん
わざわざありがとうございます。MediaPlayerいれたらOKでした。
あれだけ使用方法が書いてあったのに気づかなかったとは^^;
で、MP3が16kHzあたりでばっさり切っているのが確認できました。
シーク動作が怪しい動きをしていますが、これは実装途中と
いうことのようですね。
スペクトルは見ていてなかなか面白いですね^^;

>黒い彗星さん
私は割り込み歓迎しますよ〜。人数多い方が楽しいし^^
ちなみに、黒い三連星より赤い彗星の方が好きです(?)
#お空は曇ってて星が見えません^^;

黒い彗星 さん 1999年 11月 17日 23時 37分 53秒

Kazuさん、ありがとうございます。
いまから送らせていただきます。
それと、自分のメールアドレスを記入しようかどうかとか
いろいろ迷ったあげく書いてなくてすみません。
なにしろ名前ばっちりでつけてしまったので
ちょっと怖くてかけません。むーん。
インターネット初心者なもので「インターネットは
怖いところよう」というのが頭からはなれず
shockなんたらとかも入れてません(−。−)
ああ、でもKazuさんとこにいっぱいメールがいったら
どうしよう。やはり自分が書いとくべきですよね???
うう、でもとりあえずごめんなさいです。
僕の書きこみでホイールまわすの増やしてしまって
読んでるみなさんにもごめんなさい。

いまごろ流星群は見えているのでしょうか。
星のこともわからないくせに名前つけてしまいました。
「黒かったら見えへんやん」というツッコミを期待
してました。注)今もしてます。

それと、こちらの「わきあいあいとしてる」ところに
ついひかれて書きこんでしまいました。
掲示板というものはじめてだったりします。
ああ、書き始めてからすごく時間たってる。
会話の途中に割り込んだらごめんなさい。

zodiaq さん (zodiaq@stupid4.org) 1999年 11月 17日 09時 08分 46秒
URL:http://www.stupid4.org/users/zodiaq/

うるりさんwrote...
>SAにMP3のファイルを突っ込んでみたら実行できないよ〜といわれた^^;
>codecか何かいるのかな?

えっと、MP3を鳴らすには、WindowsMediaPlayerの6.xが必要です。
IE4以上を入れてる方と、入れていない方ではインストールするファイルが違いますので、ご注意ください。

全充@Kazu さん (kaz1-iwata@hi-ho.ne.jp) 1999年 11月 17日 08時 44分 57秒

黒い彗星さん、はじめまして。
私宛に送っていただければOKです。
kaz1-iwata@hi-ho.ne.jp

なんか、徐々に参戦者が増えていいですね。

黒い彗星 さん 1999年 11月 17日 01時 04分 15秒

はじめまして。
MASMを手に入れたのでRound2のDLL
作ってみました。
しかしホームページをつくる技術がないので
公開できません(TwT)
どこかに送らせてはもらえませんでしょうか?
あ。SSEしかないです。
はっきりいって皆さんすごすぎです。
僕も無茶苦茶頑張りましたが、そろそろ限界です。
SSEでうるりさんの記録に近づけたかったけど
参りました。でもループ部門ってことでダメ?
って感じです。

うるり さん 1999年 11月 17日 00時 31分 56秒

SAにMP3のファイルを突っ込んでみたら実行できないよ〜といわれた^^;
codecか何かいるのかな?
ろくに説明も読んでないので、また暇なときに試してみます。
#あーねむひぃ^^;

zodiaq さん (zodiaq@stupid4.org) 1999年 11月 16日 14時 48分 41秒
URL:http://www.stupid4.org/users/zodiaq/

Kazuさん、どうもお久しぶりです。
仕事の方は、一段落して落ち着いています。
#忙しいのには変わりありませんケド(^^;

お暇なときに、試してやってください。

全充@Kazu さん 1999年 11月 16日 08時 42分 23秒

zodiaqさん、おひさしぶりです。
仕事のほうはあいかわらずお忙しいのでしょうか。

私はちょっと目が回っています。

SA後継の画面、拝見させていただきました。
休みの日にゆっくり拝見させていただきます。

zodiaq さん (zodiaq@stupid4.org) 1999年 11月 15日 20時 44分 07秒
URL:http://www.stupid4.org/users/zodiaq/

zodiaqです。
どうも、お久しぶりです。

SAの後継が一応出来ました(やっと!)。
今回のは、ちょっとだけ自信作です。
MP3(Fhエンジン)の生波形を拝める、数少ないソフトになってます。

お暇でしたらどうぞ。

v さん (shorie@attglobal.net) 1999年 11月 15日 12時 36分 26秒

最近は、夏そこそこで冬は激寒なのでしょうか?^^;

その傾向はあるかも知れません。私の単車は
川崎初のフルカウルだったため、エンジンの
熱処理に完全に失敗しています。おかげで
ブーツよ燃えよとばかりに熱風が当たります
し、それでもエンジンは熱だれします(笑)。
最近の単車はそんなことはないようです。

#それでもカウルなしだと同じでしょうね。

うるり さん 1999年 11月 15日 03時 21分 27秒

>ええ、タンクを抱えるようにしてエンジンに
>手を当てます。最近の高性能水冷バイクはエン
>ジンが露出していないので困るそうです(笑)

夏はエンジンが熱く、冬は風が冷たい乗り物だと
聞いていたのですが・・・
最近は、夏そこそこで冬は激寒なのでしょうか?^^;

v さん (shorie@attgloba.net) 1999年 11月 14日 10時 51分 58秒
URL:killer

>>ADDSUB
>vさんはこの命令が好きですね^^;
>CPUのSIMD命令としてこの命令を持っているものは未だ
>見ていません。意外と使いにくいのかも?
>酒居さんはビット逆順が欲しいといってました^^;

この命令は事実上FFTでしか見かけません。が、
ビット逆順がほしい人ならADDSUBもほしいはず
です(笑)。実はあらゆるDSPにADDSUBはのって
います。問題は演算回路が2倍必要なことですね。
でもSINCOSはあるんだから…ぶつぶつ。

> #バイクに乗る人も確か信号待ち停止中はタンクを抱えると暖かいと
> #いっていたような。

ええ、タンクを抱えるようにしてエンジンに
手を当てます。最近の高性能水冷バイクはエン
ジンが露出していないので困るそうです(笑)

v

全充@Kazu さん 1999年 11月 14日 09時 55分 13秒

>#吐く息が白くなるシーズン到来。
>#キーボードの打ちにくい季節です。

うーーーん、私も学生時代を含め、独身時代アパートでのキーボード打ち
冬は確かに寒さに打ち勝つ必要がありました。
あの電熱ストーブといわれていたApple][の場合、カバーをオープンし
指をマザボの上で暖めていた思い出が。

#バイクに乗る人も確か信号待ち停止中はタンクを抱えると暖かいと
#いっていたような。

うるり さん 1999年 11月 14日 04時 28分 02秒

Round2が大変なことになってきました^^;
並列性、分岐予測、ループ作成、FPU3DNow!SSE、と
どこから見ればいいのか良くわからないことに^^;
単純な分いろいろ遊べるのかも。

#吐く息が白くなるシーズン到来。
#キーボードの打ちにくい季節です。
#Athlon暖房でも入れましょう^^;

うるり さん 1999年 11月 13日 00時 04分 59秒

どうもうるりです。
>mdctについて
うーん。語れるほど理解していないのですが(汗)
午後のこ〜だがVersion2になったころから、LAMEの方で
アルゴリズムを改良したもの、を使用しています。
どのようなアルゴリズムか理解していないので御勘弁を^^;
#約2倍ぐらい速くなってたかな?(自信無し)

>ADDSUB
vさんはこの命令が好きですね^^;
CPUのSIMD命令としてこの命令を持っているものは未だ
見ていません。意外と使いにくいのかも?
酒居さんはビット逆順が欲しいといってました^^;

>MMXでの参考まで
固定小数点以下のビットが立っているときは繰り上げる
必要があるので、「固定小数値の0.5が4個」は
0.5ではなく2進表記で0.11111・・・の気がします。
相変わらず実際に試してませんが^^;

ゆう さん (yuuichi.satoh@toshiba.co.jp) 1999年 11月 11日 13時 20分 44秒

>チェンのアルゴリズムって大きさが2の冪で
>ある正方行列によるMDCTしか高速化できな
>かったと思いますが、いかがですか?
へぇーそうなんですか、1次元のDCTか2次元のDCTの
違いで、同じアルゴリズムを使えると思ったのですが
勉強になりました。

さん 1999年 11月 11日 12時 50分 42秒

私はプロジェクトにはかんでいませんが、確か普通の
行列掛け算だったと思います。チェンのアルゴリズ
ムって大きさが2の冪である正方行列によるMDCTしか
高速化できなかったと思いますが、いかがですか?

MMXって固定小数点信号処理の立場から見ると半端です
ね。せっかく飽和演算を用意したのに丸めモードが一つ
しかないですし、ADDSUB命令もありません(こればっか)

v

v

ゆう さん (yuuichi.satoh@toshiba.co.jp) 1999年 11月 11日 10時 48分 50秒

こんにちわ、ゆうです。
Danteさん、うるりさん、分かりやすい説明ありがとうございます。
ところで、うるりさんは午後のこーだでmdct_3dnの所を
作られていたと思うのですが、mdctのアルゴリズムは
どういう物を使っておられるのでしょうか?
見た感じは、dctの式をそのまま、計算しているように
見えるのですが、チェンのアルゴリズムとか、
アルゴリズムのレベルでの高速化はされているのでしょうか?

うるり さん 1999年 11月 11日 03時 00分 19秒

Danteさんの説明はわかりやすいですね^^;

MMXでの参考まで(WORDが4個=64bitpack時)
movq mm0, [切り捨てる固定小数値が4個]
pxor mm1, mm1
pcmpgtw mm1, mm0
pand mm1, [固定小数値の0.5が4個]
paddw mm0, mm1
psraw mm0, 14
#最近間違いが多いので、これも信用できませんが^^;

Dante さん (pee01022@nifty.ne.jp) 1999年 11月 11日 01時 52分 40秒

 なるほど、JPEGの量子化でしたか。小数部切り捨てだと切り捨てて
0になる区間だけ他の区間の約2倍の広さになってしまうため区間の
広さが一定になる単純切り捨てが一般的ですが、圧縮のための量子化
の場合小数部切り捨ての方が圧縮率が上がるので小数部切り捨てを使
うことが多いようです。

 先のCソースですが、(f>>31)は(f<0?-1:0)と等価です。MMXでは
0とpcmpgtwしても同じ結果が得られます。pcmpはALUを使うのでpsra
より有利かな?

 乗算の係数としておそらく(16384/N)――Nは量子化数――を使って
ると思いますが、乗算の時点でどうしてもある程度の誤差は出てしま
うので、小数部切り捨ては

i6 = (f>>14)-(f>>31); // 小数部切り捨て近似

で近似してしまって問題ないと思います。

ゆう さん (yuuichi.satoh@toshiba.co.jp) 1999年 11月 10日 11時 52分 50秒

みなさんどうもありがとうございます。
今、なにをやっているかというとJPEGの量子化
の所のプログラムを作っています。
この場合、数字が1つずれるだけでも相当画像が
劣化してしまうため、-10.5,10.5を-10,10というふうに
切り捨てしなければならないのです。

MMXの場合、マイナスの場合どうするとか、というのは
難しそうなので、Danteさんのi4の方法を使わせて
いただきます。

うるり さん 1999年 11月 10日 09時 11分 53秒

一夜明けて落ち着きました。
自分の理解のために文字にしてみます。

全充@Kazuさんの例ですと
最下位ビットは+0.5の重みを持っていて、
右シフトで切り捨てると、+0.5の分の情報が
なくなるわけですね(見た目、-の方向に切捨てられる)

希望する10進表記での数値の切捨てを行なうには、
0の方向に切捨てる必要があり、符号がマイナスの時に
いくらか値を加えて繰り下がらないようにする必要が
ある、ということでしょうか。

#すごく下手な説明になりました^^;

うるり さん 1999年 11月 10日 02時 56分 28秒

すみません。私の書きこみ無視してください。
なにを言ってるのか自分でもわかりません^^;

うるり さん 1999年 11月 10日 02時 46分 03秒

強力な書きこみがされていて、私が書くことないですね^^;
どうやら、右シフト時の誤差が出る方向が違うみたいですね。
2の補数のだからしかたないのかな?

Dante さん (pee01022@nifty.ne.jp) 1999年 11月 09日 18時 55分 11秒

とりあえずCで。

{
double ff;
int f;
int i0,i1,i2,i3,i4,i5;
for( ff=-2.5; ff<=2.5; ff+=0.25 )
{
f = (int)(ff*16384.0); // 固定小数点(小数部14bit)
i0 = (int)floor(ff); // 切り捨て
i1 = f>>14; // 切り捨て
i2 = f/16384; // 小数部切り捨て
i3 = ((f+(f>>31))>>14)-(f>>31); // 小数部切り捨て
i4 = (f-(f>>31)*16383)>>14; // 小数部切り捨て
i5 = (f+8192)>>14; // 四捨五入
printf( "ff=%9f,i0=%3d,i1=%3d,i2=%3d,i3=%3d,i4=%3d,i5=%3d\n",
ff, i0, i1, i2, i3, i4, i5 );
}
}

 floor()関数の説明に書いてありますが、-10.5の
切り捨ては-11.0です。
 小数部のみの切り捨てを厳密にやるなら上のi4が
一番速いのかな。i5の四捨五入の方がずっと高速なの
で、こっちを使うようにアルゴリズムを変えた方が良
いのでは。

全充@Kazu さん (kaz1-iwata@hi-ho.ne.jp) 1999年 11月 09日 15時 28分 14秒

MMXはちょっと調べてみないと何とも言えませんが
算術右シフト演算について簡単に追跡しますと

たとえば8ビット整数として小数点が最右ビットの前にあるとして
-10.5は:11101011
10.5は:00010101
です。これを右に1ビット算術シフトすると

-10.5は:11110101(-11)
10.5は:0001010(=10)

ということになります。

そこで右に1ビット算術シフトする前に
0.5を加算しておくと、こんどは
-10.5は-10に
10.5は11になります。

以上から負の場合は0.5を加えてからシフト
っていうのが現実解でしょうか。

みなさまのご意見をお待ちします。

ゆう さん (yuuichi.satoh@toshiba.co.jp) 1999年 11月 09日 13時 46分 14秒

こんにちわ、ゆうです。
Cで作成したプログラムをMMXを使用して高速化
しているのですが、Cの時は割り算を使用して
いたのですが、MMXは割り算がないので、逆数にして
16384(2^14)を掛けて、ある数値(Aとします)に掛け算をして
右シフトをした所、Aがマイナスの場合小数点以下が
繰り上げになってしまいます。プラスの場合は切り捨てになります。
具体的には、結果が10.5の場合は10、-10.5の場合は-11に
なるのですが、10,-10になるような方法はないものでしょうか?
ただし結果が0.いくつの場合は
paddw mm0,mm5 ;mm0[A+1:B+1:C+1:D+1]
psubusw mm0,mm5 ;mm0[A-1:A-1:A-1:A-1]
とこのコードを入れると両方0になりました

たしかに、数字が小さいほうになるから両方切り捨てに
なっているのでしょうか?

v@会社 さん (shorie@attglobal.net) 1999年 11月 09日 09時 35分 42秒

> vさんのコード速いっすね。
> 3DNow!コードで勝てず^^;

速いのでしょうか。私はあのコードで600
サイクル台@athlonをねらっていましたの
で、現実の結果をみて悲嘆にくれました。
難しいですね。

多分11月の最後の週から2週間は米国
です。雪が降るらしくて少々憂鬱です。

v

うるり さん 1999年 11月 09日 01時 42分 39秒

(独り言)
ショートループコードを書いてみようかな〜
とか思って作業してたら・・・
vさんのコード速いっすね。
3DNow!コードで勝てず^^;
#というかショートループだと
#K6に向かないコードしか書けないぞ^^;

うるり さん 1999年 11月 08日 05時 55分 10秒

>コンテキスト切り替えのオーバーヘッドが大きすぎて。

vさんはマルチタスクに向いていないのですね^^;
私はシングルタスクONLYですから、元々複数のことは
同時にはできないです^^;;

>でも、端から見ているのも楽しいですよ。

ホームページのカウンターの増え方も不規則で
よくわからないのですが、ここのページって
私達以外も見てるのだろうか?
まあ、突っ込みをいれにくい内容ではありますが^^;

#vさん12月は出張ですか???

v さん (shorie@attglobal.net) 1999年 11月 07日 14時 13分 56秒

JUM命令研究所、楽しみにしています。

もうちょっと頭が柔らかかったら乱入するところですが、
仕事の方が私の頭を求めていてだめです(笑)。コンテ
キスト切り替えのオーバーヘッドが大きすぎて。

でも、端から見ているのも楽しいですよ。サーキットの
開発しがいがあったというものです。

v@自宅で仕事中

うるり さん 1999年 11月 07日 02時 49分 49秒

確かに「Kazu」という名前はよく見かけますね。
私はなぜ「うるり」と付けたのか思い出せません。
後付けでも理由を付けられないんですよね、これが。
自分でいうのもなんですが、変な名前だぁ^^;

話は変わりますが、どうやらJUMP命令研究所に
しばらくなりそうです。
以前冗談で話してたような気もしますね^^;

#お二人ともがんばれ♪

v さん (shorie@attglobal.net) 1999年 11月 05日 12時 33分 09秒

私も完全充電は考えていました。あるいは
競技関係の言葉かな、とも思いましたが。

実はvってのは単に打ちやすさから来ています。
Nifty時代のハンドルの頭文字がVだったてのも
ありますが、それはまぁ、後からとってつけた
理由です。

Kazuさん、以前飲んだときにハンドル変える
変えないって話しましたねぇ。Kazuさんの
場合同じ発音のハンドルが多いので結構ぶつ
かるという話を覚えています。

#徹夜寸前まで働いていたので頭がもうろうと
#しています。家にもって帰って仕事できるだけ
#恵まれていますけど。

v

Kazu さん 1999年 11月 05日 09時 24分 20秒

>てっきり私は、
>全充=完全充電=お休み
>だと思ってました^^;

あっ、まじでそういうことにしていただけると
今目が回っています。(@_@)
ページの更新だけはなんとか。。。。。
11月13日(土)は娘の七五三(7歳です)
ううぅぅぅーーーーー14日(日)は休出だな。

Return