三角関数やその他の数学関数の実装法

http://d.hatena.ne.jp/tazant/20090103/1230973343#cへコメントしようとしたら長くなったので。
数学関数は数学的に明解に定義されているものであってもコンピュータで計算するのは面倒というものが多い。単純に言えばCPUは有限桁の四則演算しか出来ないので、その制限の中で表現する式を利用する必要がある。
計算しやすい典型的な表現として多項式展開や乗積展開がある。ただ、三角関数など、有限回の四則演算で求めることの出来ないものも多々ある。その場合は速度や精度の兼ね合いを考えて作った近似式を使えばよい。具体的な式は「三角関数 多項式近似」といった風に検索すれば見つかる。自分で求めるには代数と数値計算の教科書を読んだ方が良いかも。

コメントへの返事

私は

  • 仕事は明らかに足りていない。
  • 参加者の大半はまだ健康である。
  • 貧困と生死は直結しない。貧困の中で病気になると生死の問題になる。

という認識です。先のエントリの要点は

  • このイベントは参加者の拠り所である健康を損なうものになっている。

というものであり、それよりはましなものとして

  • 短期の仕事を探して食い繋ぐ方がましだ。

と提案しています。
批判の先は理念ではなく手段です。もし反論をするなら

  • このイベントは健康を損なうものではない。
  • 参加者は同様のリスクを抱えた人だけであり、新しいリスクが加わったわけではない。

といった趣旨でお願いします。

ちょっと嫌な感じ

http://www.asahi.com/national/update/0102/TKY200901020056.htmlの「年越し派遣村」の話。どちらにせよ数日で鮮度の尽きる話だからasahi.comでいいや。
この「労働者」たちは「実行委員会」が官庁と交渉するための人質なんだろう。でも、ちょっと「同日午後、寒空の下に労働者が放り出されては命の危険がある」というのは酷い話だ。本当に「悲惨な状況」の大半はこの「実行委員会」が作り出したものなのだもの。
冬にろくな装備もなし*1に野宿をするのは危険だ。夜中に急な雨が降り出したら体調を崩す人がどれだけいると思っているのか。年末年始は病院もあまり動いていないので命に関わることにもなりかねない。実際、野宿者の肺炎、結核による死亡は珍しいものではないし。
済し崩しに週明けの後も座り込みを続けるつもりだとは思うが、終わった後にその参加者が帰る場所は残っているのかという疑問もある。この「労働者」の何割が元派遣労働者なのかも判らないけど、路上生活者を増やすのでは元も子もない。
確かに「収入がない」は困った状況だが、だからと言ってすぐに死ぬわけではない。こんな博打をして得られるものは少々の一時給付程度、それで身体を壊したら本当に働くことが出来なくなる。それなら短期の仕事を探して食い繋ぐ方がましだと思う。
それも条件の悪いものばかりで不満はあるだろう。でも余裕がないときに一発逆転を狙うのはきわめて危険だ。一つにはその可能性が小さければ小さいほどその確率を正しく見積もるのは難しいから。もう一つにはそういった余裕がない人を利用する犯罪が多々あるから*2

*1:布団がキャンプ用ではないし、こんな吹き晒しで野宿する?

*2:この「実行委員会」がそうだという主張ではなくて、路上生活者が売り払った戸籍や住民票が詐欺事件で利用されているといった話。戸籍や住民票がなければ通常の社会復帰は無理でしょう。

並列化する未来

http://d.hatena.ne.jp/propella/20090103/p1について。
逐次型言語が足枷になりつつある点に同意。今は逐次型言語で並列処理をするためには同期や排他が必要だが、それらは、後付の仕組みだからだろう、抽象化に漏れがある箇所が多すぎる。
時間に関する制約を組み込んだ関数型言語というのが良さそうな気がする、Erlang+Haskellくらいで。ただし、強力に回路数を最小化するコンパイラがないと使われないだろうな。