本稿の概要 本稿では,C 言語による行列積の計算を行う.実装例として,単純な方法, および,BLAS を用いた方法の 2 つを示す.また,各実装の実行時間の 比較を行う. 行列の入力 L x M 行列 A と M x N 行列 B の積 C を求めたい.ここで,C は L x N 行 列である. 行列 A と B の内容をファイルから入力することを考える.本稿で使用する 入力ファイルのフォーマットを以下に示す. L M 行列 A の 0 行目の各値(空白区切り) 行列 A の 1 行目の各値(空白区切り) ... 行列 A の L-1 行目の各値(空白区切り) M N 行列 B の 0 行目の各値(空白区切り) 行列 B の 1 行目の各値(空白区切り) ... 行列 B の M-1 行目の各値(空白区切り) 例えば,A,B 共に 3 x 3 の単位行列である場合,入力ファイルは以下のよう
元々は8ビットパソコン用のOSであるCP/Mのファイルの仕様である。 CP/Mは、ファイルを128バイトを単位とするブロックで管理しており、バイト単位でサイズを指定することができなかった事から、この制御コードによって終端を識別するようにしていた。このためテクストファイルの末尾には必ずこのコードを付加しなければならかなった。 そして、CP/Mの上位互換OSとして開発されたMS-DOSもこの仕様を受け継いでいる(ただしMS-DOSではバイト単位でファイルサイズを扱えるため、無くても動作上の問題は発生しない)。 例えばtypeやmoreなどのMS-DOS標準のコマンドは、このコードをテクスト中に見つけると、それでファイルが終了したと判断し、それ以降は表示しなくなる。一部の市販・フリーソフトのテクストエディターもこれに準拠し、EOF以降は読まなかったり、編集したファイルには必ず末尾にEOFを付加し
面白いことに、p == *p である。これはポインタが指す対象が配列でありポインタではないから、間接参照が生成されないのである(逆に言えばポインタの場合には、*p が間接参照をして、p != *p になる)。 上の表の結果と、二次元配列のシンボル x は、実質上一次元配列であることから、次のキャストは成功することになる。 int *p = (int *)x; だから次のように書ける。 int x[10][10]; int i; int *p = (int *)x; for( i = 0; i < 100; i++ ) { *p++ = i; } printf( "x[5][5] = %d\n", x[5][5] ); これは x が実質上一次元のポインタであることを示している。 この事情は関数引数の場合も同様である。二次元配列とポインタは混同されず、しかし int (*p)[10] とは一
コンピューティングにおいて、End Of File(エンド・オブ・ファイル、略称:EOF[1])とは、ファイルやストリームにおいて、それより先に読み出すデータが存在しない(終端である)ことを示す状態のことである。 標準Cライブラリでは、getcharのような文字を読み取る関数は、ファイルやストリームの終端を読み取った時に、シンボル値(マクロ) EOF に等しい値を返す。EOF の実際の値は実装に依存するが(ただし、GNU Cライブラリなど、一般的には -1 が使用される[2])、文字を示す全てのコードと異なる値で示される。fgets()はヌルポインタが返るなど、同じ言語においても様々である。 データをシーケンシャルアクセスしていって、最後のデータまで読み込んだ場合(あるいは、さらに次のデータを読み込もうとした後に[3])、EOFが発生する。readなどのブロックを読み取る関数は、戻り値とし
java.lang クラス System java.lang.Object | +--java.lang.System public final class Systemextends Object System クラスには有用なクラスフィールドおよびメソッドがあります。インスタンスを生成することはできません。 System クラスによって得られる機能には、標準入力、標準出力、およびエラー出力ストリーム、外部的に定義された「プロパティ」へのアクセス、ファイルおよびライブラリのローディング方法、配列の一部をすばやくコピーするユーティリティメソッドがあります。 導入されたバージョン: JDK1.0
Java Language and Virtual Machine Specifications Java SE 25 Released September 2025 as JSR 400 The Java Language Specification, Java SE 25 Edition HTML | PDF Preview feature: Primitive Types in Patterns, instanceof, and switch The Java Virtual Machine Specification, Java SE 25 Edition HTML | PDF Java SE 24 Released March 2025 as JSR 399 The Java Language Specification, Java SE 24 Edition HTML | PD
目次 | 前 | 次 Java言語規定 目次 序文 0. 標準情報としての導入 0.1 適用範囲0.2 引用規格0.3 定義 1. はしがき 1.1 プログラム例1.2 文献 2. 文法 2.1 文脈自由文法2.2 字句文法2.3 構文文法2.4 文法記法 3. 字句構造 3.1 Unicode3.2 字句変換3.3 Unicodeエスケープ3.4 行終端子3.5 入力要素及びトークン3.6 空白類3.7 注釈3.8 識別子3.9 キーワード3.10 リテラル3.10.1 整数リテラル3.10.2 浮動小数点リテラル3.10.3 論理値リテラル3.10.4 文字リテラル3.10.5 文字列リテラル3.10.6 文字及び文字列リテラルのためのエスケープシーケンス3.10.7 空リテラル3.11 分離子3.12 演算子 4. 型,値及び変数 4.1 型及び値の種類4.2 プリミティブ型及び値4
デバッガでプログラムを追うのに必要な共通の準備 まず、通常のプログラムをデバッグするときと同様、PPEプログラムもSPEプログラムも -g オプションをつけてコンパイルしてください。 Cell SDK 2.X環境でCell/B.E.プログラムの実行をデバッガで追う Cell SDK 2.X以降に含まれるppu-gdb がインストールされている環境では、PPU用のデバッガppu-gdbがcombined debuggerとなっているため、ppu-gdbを使うことでPPEプログラムやそのプログラムから実行されるSPEプログラムをシームレスに追うことができます。 ppu-gdb を使ってPPEプログラム側を開始したら、通常のプログラムのようにブレークポイントなどを設定して run で実行を開始してください。SPEプログラム内のシンボルなどをbreakpointに設定すると、プログラムが読み込
忙しいJava開発者のために 「Ruby on Rails(以下、RoR)」の登場が大きな契機となり、現在、Rubyユーザーの数は増加の一途をたどっている。最近では多くのプラットフォームで対応が進められており、Javaにおいても、JVM上で動作するRuby実行環境「JRuby」が用意されているのはご存知のとおりだ。 こうした背景から、Java開発者の中にはRubyに興味を持っている方が少なくないのではないだろうか。もっとも、その多くは、日々の業務に追われ、新たな言語の学習に十分な時間がとれないという状況だと推測する。そこで、本連載では、Rubyという言語、およびその言語の魅力を最大限に引き出しているフレームワークRoRについてJava開発者の皆さんが効率的に学習できるよう、JavaプラットフォームとRubyプラットフォームの特徴を比較しながら解説していこうと思う。 なお、連載の前半では、J
Domain Registration in over 1,400 different extensions Enterprise Domain Management since 1999 Mark ProtectTM Online Brand Monitoring and Enforcement Domain Consultancy and Strategy Domain Name Acquisition Domain Disputes and Recovery Web Hosting and Data Center Solutions SSL Management Cyber Security Solutions Please visit www.safenames.net for more information. Europe, Middle East and Africa: +4
タブメニューなにか良いのないかなと思って探していたら、10 Javascript Ajax Tabsというエントリが後々使えそうなのでご紹介しておきます。 タブに関するまとめは以下で。 10 Javascript Ajax Tabs とりあえず10のJavaScriptAjaxタブメニューエントリはこちらから。 エントリの中でも、以下のメニューが面白かったですね。 口で説明するのは難しいですが、タブをクリックすると上下にスライドしながら違う文章を持ってきます。 以下からサンプル&ダウンロード可能 タブメニューに関して 最近仕事のほうも忙しくなり、なかなか更新できないでいます。 そんなわけで、今回のようにタブを紹介するときにまとめて関連する記事を紹介する率も高くなってきました。 ピンポイント紹介ではなくなってきていますが、ご愛嬌と言う事でお願いします。 [JS]スムーズに切り替わるタブ型コン
C++入門 基礎知識は仮定しません あなたは 人目のお客さんです。 ゆっくりしていってください。 C++入門1 プログラミングの基礎知識 C++入門2 coutを使った出力 C++入門3 cinを使った入力 C++入門4 オブジェクト指向について C++入門5 クラスを作ろう C++入門6 クラスを作ろう(補足) C++入門7 クラスの練習 C++入門8 コンストラクタの引数 C++入門9 クラス間の関係 C++入門10 乱数 C++入門11 while文とfor文 C++入門12 値を戻す関数 C++入門13 値を戻す関数の例 C++入門14 パブリックとプライベート C++入門15 継承 C++入門16 継承の練習 C++入門17 さらに継承 C++入門18 デストラクタ C++入門19 配列 C++入門20 ポインタ C++入
ソース・コードが自由に入手できるLinuxならではの楽しみが,カーネルをコンパイルして,独自のシステムに仕立てられること。例えば,より新しいカーネルのソース・コードを入手し,コンパイルして導入すれば,最新機能をいち早く試せる。 初めて「カーネル・コンパイル」に挑戦する人に向けて,カーネルを安全に導入する方法を2回に分けて解説する。 なお,カーネル・ソースの読み方については,関連記事「はじめてのカーネル・ソース」で公開しています。 前編:カーネル・コンパイルすべき人,すべきでない人 後編:カーネルの導入とパラメータの設定
なかなかハードルが高く,多くの人が踏み出せないでいるカーネルのソース・コードの読解。本連載では,今までカーネル・ソースなんて見たことがないという人に,読みこなすコツをお教えします。今回は,どうしたらカーネル・ソースを読みこなせるようになるのか,筆者の経験をお話します。 Linuxユーザーなら誰しもカーネルのソース・コード(カーネル・ソース)を読んで,どのような処理を行っているのかを確認したり,自分なりの変更を加えたりしたくなるのではないでしょうか。しかし,カーネル・ソースの量は膨大な上,C言語で書かれているので,コンピュータ内部やOS(オペレーティング・システム)の仕組みを理解したプログラマでないとなかなか読みこなせません。そのため,カーネルを読むための第一歩を踏み出せない人が数多くいることは事実です。 本講座では,プログラマではないごく普通のLinuxユーザーが,カーネルをある程度自力で
突然ですが、穴埋めクイズです。下線部に入る単語はなんでしょう? グーグルで_____ おそらく、「検索」「調べる」「探す」といった単語を思いつくのではないでしょうか? 実際に、Webにあるドキュメントをくまなく調べ、「グーグルで」の後にくる単語を調べると、「検索」が1位であるとがわかります。 一般に、直前の(N-1)個の単語を見て、次の単語を予測するモデルをN-gram言語モデルといいます。さきほどは、「グーグル」 と 「で」の2単語から次を予想しているので、3-gram言語モデルの例となります。現時点の単語が、直前の(N-1)個のみに影響を受けるという仮説は、一見現実離れしているようですが、実際には非常に有効な場合も多く、かな漢字変換、OCRのエラー訂正、機械翻訳、音声認識などに広く用いられています。たとえば、音声認識の場合、ノイズ等で現時点の単語をシステムが聞き取れなくても、言語モデル
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く