トップ 追記

U-memo

2006|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|08|
2009|08|10|
2010|02|03|
2011|11|12|
2012|04|
All= / Today= / Yesterday=

2012-04-22 [長年日記]

_ [雑記] 工事という名のセールス×2

「この地域一帯でエコキュートの工事をするので説明に来た」と。

近所は新築戸建を建てたりしていて工事で道がふさがるだのなんだのあるので、その類の説明かと思ったらセールスだったでござる。

東電の担当が直々に来たわけでもなく工事会社だったようなんだが (調べてないけどひ孫請けくらいなのかしら。関電工みたいなメジャーなところではなかったし、セールスの要領も非常に悪かったし)、 別会社で2回同じ日に来るとかいう。いわく

  • 工事はお金がかからない (リベートいくらくらいもらえるんだろう)
  • プロパンでも大丈夫です (ガスが関係するんかいな)

東電必死だなw

しかし、詐欺臭さすら感じるひどい説明だった。 電気代が上がるとか言うのにエコキュートが売れるとはとても思えないから、正攻法ではセールスの成果が上がらないんだろうけどさ。


2011-12-17 [長年日記]

_ [DE0] Verilog 初心者講習会

先週の日曜日に Verilog 初心者講習会に侵入してきた。

DE0 という FPGA キットを使って Verilog のお勉強する会です。

de0.jpg

ちなみに画像のDE0 は別売りの LCD パネルを搭載しています。 この LCD パネルを取り付けるには、はんだ付けしないといけないので、 買う時には注意しましょう。

  • 場所:三鷹産業プラザ (7階会議室)

うちから行くと直線距離では近いにもかかわらず何故か1時間以上かかるという、私にとっては微妙に不便な場所。

mitakaplaza.jpg

  • 主催者、講師(千本木さん)、生徒11人(学生っぽい人らから年齢は幅広かったっぽい)

集まった人のレベルがよくわからなかったけど、 もう少しレベル上げた形にするとか、 Q&A形式メインとかにしても問題なかったのやもしれないような気が。 (そもそもキットを買ってやろうという意思のある人らだしな)

参加者の自己紹介なんかはなかったし、特に交流はなかったという。 講師の千本木さんは、フリースケールセミコンダクタ(旧モトローラの半導体部門)にいたひと(今は別の会社に移っているとのこと)。

テキストはこれ verilogtxt.jpg

内容

前半は座学パート、後半は実習パート。 千本木さんはほぼ間違いなく昔ゲート設計者だった人。 ぐぐると画像処理系のLSI作ってたんかなとも思うけれど。

メモ

  • ふつー、一つのモジュールで一つのファイル

確かにこれはソフト屋さんからすると驚くことかもしれんな。


2011-11-27 [長年日記]

_ [雑記] 久しぶり

またしても放置していた。 今年は一年中、仕事が精神的に(謎)忙しかった。

_ [DE0] Terasic の Altera FPGA 学習ボード DE0 を衝動買いした

買って何に使うんだというのを考えずに買ってみた。 開発元の Terasic から直接買ったけれど 送料がかかるんで、 (7500円以上で)送料がかからない DigiKeyから買うのが最安。

Getting start

紙のマニュアルはないので、 添付CD-ROMの中の Getting(略)pdf ファイルを読む。 が、とりあえず Quartas II (とNeosII EDS) を入れやがれ、という。 Education board の割に不親切な説明だなこれは。

念のため User Manual を読むと、

  • 添付のシリコンラバー足をつけろ

こっちを先に読めということらしい。

電源投入

ツールを入れる前にスタンドアロンで動かせるらしい。ので、 AC アダプタを接続して赤い電源ボタンを押す。動く。 (電源を入れる前に、左端にあるスライドスイッチが「RUN」位置にあることを確認する。PROG になっていたら RUN に切り替えておく)

VGA ケーブルとモニタがあればつなげると何か映るらしいが未確認。

Quartus II (Web Edition) インストール

添付 CD-ROM に入っているのはバージョンが古い(& Windows 版しかない) ので、 Altera からダウンロードする。個人情報を記入する必要があるが。

6GB くらいディスクスペースが必要。

USB Blaster のドライバインストール

Quartus2 のインストール先のフォルダの中に、 USB Blaster (II もあるけど DE0 は初代のほう) のドライバがあるので これをインストールする必要がある。 USB ケーブルを接続して DE0 の電源を入れると PC から DE0 を認識 するので、主導でドライバを入れる。

コントロールパネル

添付CD-ROM のフォルダごとコピー。 そのままだとなぜかDLL不足というか、QuartusIIのインストールディレクトリが見えない(ってそうか、添付CD-ROMとバージョンが違うからだ)ためにうまく立ち上がらない。

QuartusII の bin ディレクトリにある

jtag_client.dll
dinkun_alt.dll (とdinkun_alt.pdb)

をコピーすることで動作するようになった。


2010-03-18 [長年日記]

_ [雑記] log 0.0

ということで、log(0) は EDOM でも ERANGE でもいいっぽいですねえ

違うよ、それは違うよ。Sun コンパイラが言っているのは、要するに

  • SVID と X/Open 両規格で要求する結果が一致しないから、規格を明示してくれたらその期待通りの出力してあげる

であって、SVID 指定なら EDOM だし、X/Open 指定なら ERANGE、です (デフォルトは X/Open)。 どっちも原規格にあたっていないので、shall なのか should なのか知りませんけど。

log(0.0) の結果を printf で表示するようにして、 指定によって変わる様を示しておきます。

% cat log.c
#include <math.h>
#include <errno.h>
#include <stdio.h>

int main(int ac, char **av)
{
  double d;
  d=log(0.0);
  perror("");
  printf("%d\n", errno);
  printf("%f\n", d);
}
% cc -lm -Xt log.c 
% a.out                                                                              
log: SING error
Argument out of domain
33
-340282346638528859811704183484516925440.000000
% cc -lm -Xa log.c
% a.out                                                                              
Result too large
34
-Inf

他に関係する規格の規定はこんな感じ、

  • C99:「値域エラーになることもある」(定義域エラーにはならない)
  • IEEE754: 定義域内であり(log の定義域は [0,+∞]) 結果値は -Inf 、とするのが推奨 (recommended)。

したがって、環境がどの規格に準拠しているのかで、定義域エラーになるか値域エラーになるかが違うワケです。が、定義域エラーになるのはめずらしいような。

なお、どれでも、log(-1) は定義域エラーです。

_ [雑記] つづき。

python の元の問題を試してみたのさ。

import math
for x in range(0, 10):
  z = 10 ** int(math.log10(x))
  if x > z and x % z:
    continue
  print(x)

さっきと同じ環境だと

% python log.py
Traceback (most recent call last):
  File "log.py", line 3, in <module>
    z = 10 ** int(math.log10(x))
OverflowError: math range error

ふむ。さっきの log(0.0) の結果 (-Xa) と同じ。

別の環境

% gcc -lm log.c
% a.out
Numerical result out of range
29
-inf

おっと、errno が上書きされてる。perror() と errno 表示をひっくりかえすと

% a.out
34
Numerical result out of range
-inf

この環境で、

% python log.py
Traceback (most recent call last):
  File "log.py", line 3, in <module>
    z = 10 ** int(math.log10(x))
ValueError: math domain error

Huh? お前は何をいっているのだ? ちなみに ruby だとおかしなことにはなっていない。

% ruby -e 'print Math.log(0.0)' 
-e:1:in `log': Numerical result out of range - log (Errno::ERANGE)
        from -e:1
本日のツッコミ(全1件) [ツッコミを入れる]

_ うんの [算数.org の方にもメールしましたが、明日は休講になりました。 ゆっくり休んでくださいませ。]


2010-02-22 [長年日記]

_ [雑記] float->double 変換

Float → Double の代入を行って「誤差が発生する」ケースってどんなのでしょうか?

IEEE754規格 (5.4.2節) では

Conversion to a format with the same radix but wider precision and range is always exact.

なので誤差は発生しませんね。Scala の実装は知りませんケド :-p


2009-10-06 [長年日記]

_ [雑記] Blokus duo プログラム対戦

ああ今年も間に合わん、こりゃ。


2009-08-28 [長年日記]

_ [OCaml] 明後日は OCaml Meeting 2009 in Tokyo (平成廿一年東都大駱駝会)

ゴルフコンペはとりあえず二桁台に乗ったので満足。 今日追い抜かれない限り更新する努力はしない予定...

(追記)ぬかれたので頑張る...実行時間が全然違うな...


2009-08-11 [長年日記]

_ [雑記] 気がつくと

一年放置してましたね...

その間のことは「あとで書く」


2008-08-07 [長年日記]

_ [雑記] google ストリートビュー

おや、私の車(駐車中)が写ってる。でも場所が正しくないなぁ。


2008-06-17 [長年日記]

_ [プロセッサ] Linux (glibc) の memcpy()

バイト単位でコピーするアホなコードの方が、勝手にベクトル化される分、gcc 内蔵のヤツより最大3倍高速なんだってwww

手元の glibc memcpy() だとこんなコードですが、 そもそも SSE2 を使わない縛りとしても最速コードではなさげ。

008bb6d0 <memcpy>:
 8bb6d0:       8b 4c 24 0c             mov    0xc(%esp),%ecx
 8bb6d4:       89 f8                   mov    %edi,%eax
 8bb6d6:       8b 7c 24 04             mov    0x4(%esp),%edi
 8bb6da:       89 f2                   mov    %esi,%edx
 8bb6dc:       8b 74 24 08             mov    0x8(%esp),%esi
 8bb6e0:       fc                      cld    
 8bb6e1:       d1 e9                   shr    %ecx
 8bb6e3:       73 01                   jae    8bb6e6 <memcpy+0x16>
 8bb6e5:       a4                      movsb  %ds:(%esi),%es:(%edi)
 8bb6e6:       d1 e9                   shr    %ecx
 8bb6e8:       73 02                   jae    8bb6ec <memcpy+0x1c>
 8bb6ea:       66 a5                   movsw  %ds:(%esi),%es:(%edi)
 8bb6ec:       f3 a5                   rep movsl %ds:(%esi),%es:(%edi)
 8bb6ee:       89 c7                   mov    %eax,%edi
 8bb6f0:       89 d6                   mov    %edx,%esi
 8bb6f2:       8b 44 24 04             mov    0x4(%esp),%eax
 8bb6f6:       c3                      ret    

Intel としてはコンパイラの性能自慢のために、 自分らの過去のコードよりもインパクトのある数字だから 持ってきたんだろうなぁ。

本日のツッコミ(全6件) [ツッコミを入れる]

Before...

_ tetsuya [綾成分無しは考えられまへんな。赤いというとこういうのですかクス ttp://jabro.jp/Entry/557/]

_ うかい [真人間なので痛車にはのっていませんわよオホホホホ]

_ tetsuya [その口調がすでに魔人間ぽいですぜひさかわさんプ]