Ch Professional よくあるご質問

Ch Professional に関する質問とご回答

注:
  • 特に断らない限り、「Ch Professional」という用語は
    • Ch Professional 6.3 Windows 32ビット版
    • Ch Professional 6.3 Windows 64ビット版
    の二つの製品の総称を意味します。特定の製品一つのみを指す場合には上記製品名を指定してあります。尚米国開発元ではWindowsの他AIX、Solaris、HP-UX、Linux、Mac OS、FreeBSD及びQNXをプラットフォームとする製品を出荷しておりますが弊社で扱うのは上記二種類のWindowsをプラットフォームとする製品のみです(AIX等のプラットフォームのCh Professionalについては弊社はサポートも致しません)のでご了承願います。
  • このFAQの記述には他社のWebサイトのページを紹介しているところがありますが、その内容の正確性/妥当性について弊社が保証するものではありません。またURLについてはFAQの記事作成時のものを参照の便のため記載しており、その後当該Webページ作成元にて変更があった場合でも弊社はそれをトラッキングしてはおりません。ご了承賜りますようお願いいたします。
  • このFAQで使用している製品名、テクノロジー名などはそれを開発した他社の商標または登録商標である場合があります。但しこのFAQでは、当該他社のドキュメント名など固有名詞の一部である場合その他当該他社が指定した語句の引用である場合を除き、その旨の表記(登録商標を表す「®」あるいは商標を表す「™」など)を一切省略させていただきます。

動作環境に関する質問

Q 1. ■ Ch Professional のオペレーティングシステム要件
Ch Professional が稼働するオペレーティングシステム要件は何か?
A 1. Ch Professional 32ビット版と64ビット版とでオペレーティングシステム要件は異なります。
  • Ch Professional 32ビット版は、Microsoft Windows 2000/XP/Vista/7上で動作します。但し Windows XP/Vista/7 については32ビット版に限ります。
  • Ch Professional 64ビット版は、Microsoft Windows XP/Vista/7上で動作します。但し x64 用の64ビット版に限ります。
ご注意いただきたいことはつぎの通りです。
  • 64ビット版 Windows には x64 用とIA-64 用とがありますが、Ch Professional は IA-64 用 Windows では動作いたしません。
  • 米国開発元では Windows の他Unix、AIX、Solaris、HP-UX、Linux、Mac OS、FreeBSD及びQNXをプラットフォームとする製品を出荷しておりますが弊社で扱うのは上記二種類のWindowsをプラットフォームとする製品のみです(AIX等のプラットフォームのCh Professionalについては弊社はサポートも致しません)のでご了承願います。
  • Ch Professional 64ビット版を32ビット版 Windows にインストールすることはできません。
  • Ch Professional 32ビット版を64ビット版 Windows にインストールして稼働させることは、原理的に可能だとは思われますが、弊社も米国開発元も共に動作保証もサポートも致しません。
 
Q 2. ■ Ch Professional の CPU 要件
Ch Professional が動作するためにどの CPU を搭載したコンピュータを用意すればよいか?
A 2. インストール先の Windows が要求する CPU 要件と同一です。即ち、
  • Ch Professional 32ビット版は、Intel Pentium 又はそれ以降もしくはそれと互換の x86 アーキテクチャの CPU を必要とします。
  • Ch Professional 64ビット版は、AMD Athlon 64 又は Intel Pentium 4 又はそれ以降もしくはそれと互換の x64 アーキテクチャの CPU を必要とします。IA-64 アーキテクチャの CPU には対応しておりません。また初期の Pentium 4 にはx64 アーキテクチャに則っていないモデルがありますのでご注意願います。
 
Q 3. ■ Ch Professionalのメモリ要求
Ch Professionalが動作するためにメモリをいくら用意すればよいか?
A 3. Ch Professional それ自体が特に大きな物理メモリを要求することはありません。インストール先の Windows が要求する物理メモリが搭載されていれば、少なくとも Ch Professional の動作のためには、充分です。但し余りに物理メモリが少ないとページ・スワップにほとんどの時間を取られる(スラッシングといいます)などパフォーマンス上の問題が生じることがありますので、最低でも Windows それ自体が要求する容量の物理メモリを搭載しておくことをお勧めします。尚本FAQの「Ch Professionalに利用可能なメモリ」及び「物理メモリの大きさ」もご参照願います。
 
Q 4. ■ Ch Professional 32ビット版と64ビット版との機能上の差異
Ch Professional 32ビット版と64ビット版とで機能上の差異はあるのか?
A 4. Ch Professional 32ビット版と64ビット版とは、正に「32ビット」及び「64ビット」に由来する以下の点を除けば機能的に全く同一であり差異はありません。
  • int型データのビット幅(32ビット版では32ビット、64ビット版では64ビット。尚本FAQ の「 int型データのバイト長について 」もご参照願います。)
  • 使用可能なメモリの大きさ(弊社の実験結果では、1MBのメモリ・ブロックを32ビット版では1890個弱、64ビット版では7400個強、確保することができました(個数は環境により多少上下することがありますので概数で示してあります。Ch自身が使用するメモリ及び実験に使用したコンピュータの物理メモリ並びにページングファイルのサイズ(それぞれ4GB)を考慮すると、32/64ビット版共に利用可能なメモリをほとんど使い切っている(32ビット版の場合アプリケーションが使用可能な、4GB仮想空間の下位2GB、64ビット版の場合には物理メモリ及びページングファイルの全て合計8GB)と推定されます)。
  • その他データ及びアドレスのビット幅に起因する事項
尚、以下このFAQの記述は、特に必要がない限り32ビット版を例として使います。32ビット版/64ビット版で異なる場合にはその都度明記します。


直接Ch Professionalに(少なくともCh Professionalだけに)関わる事柄ではありませんが、動作環境に関わる事柄として特に知っておいていただきたいことをQ&A形式で纏めてみました。

Q 1.
A 1. これらの名称はCPUのアーキテクチャ、具体的な例でいえば命令セットなどにつけられた名称です。
x86
Intel社最初の16ビットCPUである8086に端を発したアーキテクチャの名称(同社ではIA-32と呼んでいます)で、同社最初の32ビットCPUである80386(それ自身が8086に対して上位互換でした)及びそれに対して上位互換性を保ったCPUである80486、Pentiumシリーズ、Cerelon、Xeon等またこれらと互換であるAMD社のCPU(Athlon、Duron等)のCPUに実装されています。アドレスは32ビットで表され4GBの範囲を指定できます(32ビット版Windowsが提供する仮想メモリの大きさが4GBであるのはそのためです)。このアーキテクチャの詳細については「Intel® 64 and IA-32 Architectures Software Developer's Manuals」をご参照願います。
x64
元々はAMD社がx86アーキテクチャを64ビットに拡張した命令セットにつけられたx86-64(のちにAMD64と改称)アーキテクチャをいい、同社のAthron64、Opteron等のCPUに実装された他マイクロソフト社の要請に応じてIntel社がAMD64互換の命令セットを当初EM64T、のちにIntel64と改称して同社のPentium4及びその後継CPUに実装したアーキテクチャです。x86に対して上位互換性を持ち、このアーキテクチャのCPUを搭載したコンピュータにはx86用の32ビットWindowsをインストールして稼働させることが可能です。尚"x64"とはAMD64/Intel64に対してつけられたマイクロソフト社の名称で、いわゆるパーソナル・コンピュータに現在使用されているCPUの主流はx64アーキテクチャのCPUです。アドレスは最大64ビットで表され理論的には16EB(エクサバイト)まで指定できますが、現在の実装では48ビット(256TB(テラバイト))までに限定されています。但しx64用Windowsが提供する仮想メモリの大きさはこれよりはるかに小さく16TBです。このアーキテクチャの詳細については「AMD64 Architecture and Software Manuals 」または「Intel® 64 and IA-32 Architectures Software Developer's Manuals」をご参照願います。
IA-64
Intel社が同社のItanium ファミリーのCPUに実装したアーキテクチャで、最近ではEPICとも呼ばれています。x86アーキテクチャとの互換性に乏しく、ItaniumなどIA-64アーキテクチャをCPUを搭載したコンピュータにx86用の32ビット版Windowsをインストールして稼働させることはできません。サーバの一部に使用されるに留まっています。このアーキテクチャの詳細については「Intel® Itanium® Architecture Software Developer's Manuals」をご参照願います。
Q 2.
A 2. Ch Professionalに限りませんが、Windows上で稼働するアプリケーションはアプリケーション(正確にいえば「プロセス」)にWindowsが提供する仮想メモリの上で動作します(つまりアプリケーションが利用可能なメモリはWindowsが提供する仮想メモリということになります)。プロセス一つに提供される仮想メモリの大きさは32ビット版Windowsと64ビット版Windowsとで異なり、
  • 32ビット版Windowsの場合4GB
  • 64ビット版Windowsの場合16TB
となっています(同じ32ビット版Windowsの中での違いはありません。たとえばWindows 2000もWindows XPもWindows VistaもWindows 7も32ビット版である限りプロセス一つ当たり4GBの大きさの仮想メモリを提供します)。但しアプリケーションが自分自身及びデータのために利用可能なのは下位2GBに限られます(事情は64ビット版Windowsも同じで、プロセス一つ当たりの仮想メモリ16TBの下位8TBだけがプロセスから利用可能です)。

仮想メモリの大きさは、PCにハードウェアとして搭載されたメモリ(物理メモリまたは物理メモリと呼ばれます)の大きさには依存しません。物理メモリが256MBのコンピュータであろうと1GBのコンピュータであろうと、x86系のCPUを搭載しその上で稼働しているWindows 2000(32ビット版Windowsの例として取り上げます。以下同じ)はプロセス当たり4GBの仮想メモリを提供します。またWindowsは複数個のプロセスを同時に実行させることができます(たとえばワード・プロセッサで文書作成中にメーラが電子メールを受信する等はごく当たり前のことですが、この場合にはワード・プロセッサとメーラとがそれぞれ独立したプロセスとして同時並行的に実行されていることになります)が、32ビット版Windowsは同時並行的に実行されているプロセス一つ一つに対してそれぞれ4GBの仮想メモリを提供します(多重仮想記憶と呼ばれます)。
 
Q 3.
A 3. 原理的にはそうなります(但しあまりに物理メモリが少ないとWindowsそれ自体が起動しないことがあります)が、実際には可能な限り大容量の物理メモリを搭載することをお勧めします。それはパフォーマンス上の理由が存在するからです。

プロセッサが直接読み書きできるのは物理メモリ上のデータやプログラム・コードだけです。このためプログラム・コードやそれが確保したデータ(以下両者を総称して「データ」といいます)は物理メモリ上に配置されアプリケーションは仮想メモリを通して物理メモリを見ていることになります(仮想メモリと物理メモリとの「マッピング」といいます)。ところが物理メモリの大きさは仮想メモリの大きさよりも小さいのが普通ですから、仮想メモリ上に配置されたデータが実際に物理メモリ上には存在しない(マップされていない)といった場合があり得ます。物理メモリ上にマップされていないデータはディスク上(Windowsではpagefile.sysなるファイル)に保管され、必要に応じて物理メモリ上にロードされますがそのためには現に物理メモリ上にあるデータのどれかをディスク上に退避しなければなりません(いつかは使用されるからです)。このディスクと物理メモリとの間のデータの退避とロードとは取り扱いの簡単のため一定サイズの大きさを単位として行なわれ、このサイズの仮想メモリ上の領域を「ページ」、物理メモリ上の領域を「ページ・フレーム」と呼んでいます。ページ・フレーム上のデータをディスクに退避することを「ページ・アウト」、ディスクからページ・フレームにページの内容をロードすることを「ページ・イン」といい、ページ・アウトとページ・インとをまとめて「ページ・スワップ」と呼んでいます(ページ・アウトすべきページの選択アルゴリズムはページ・スワップのパフォーマンスに大きな影響を与えるため古くから研究が積み重ねられてきていますが詳細については省略します)。32ビット版Windowsが僅か256MBの大きさの物理メモリしか持たないPC上で4GBもの大きさの仮想メモリを提供できるのは必要に応じてページ・スワップを行なっている(「オン・デマンド・ページング」又は単に「ページング」といいます)からなのです。

しかしながら、ディスクへのアクセスは、物理メモリへのアクセスに比べ桁違いに長い時間を要します。このため物理メモリがあまりに小さいと処理時間の大部分がページ・スワップに費やされアプリケーションにとって意味のある動作が全くできないといった事態(「スラッシング」といいます)が生じます。それを避けるため、物理メモリはハードウェア(マザー・ボード上のチップセットなど)が許す限り大容量とすることをお勧めします。最低でも、オペレーティングシステムの要件として記載されている容量程度の物理メモリ搭載しておくことは必要でしょう。。


ライセンスに関する質問

Q 1. ■ Ch Professionalのライセンスの種類
Ch Professionalのライセンスにはどのような種類があるのか?
A 1. Ch Professional のライセンスには次の三種類があり、それぞれ異なる特徴を持ち有効化の方法も異なっています。
 
Q 2. ■ 評価ライセンスの特徴
評価ライセンスの特徴について教えてほしい。
A 2. 評価ライセンスは、ご購入いただく前の機能評価等のために用意されたライセンスであり、次の特徴があります。
  • 無償で提供されます。
  • Ch Professional をインストールするだけで直ちに有効になります。
  • 任意の台数の PC 上で同時に有効化することができます。
  • 以下の点を除き、ノードロックライセンスなど正規のライセンスと同等の機能を持っています。
    • 有効期間がインストール後30日間に制限されています。
    • プロット出力のX軸方向ラベルの近くにメッセージ"This plot is generated by Ch Evaluation Edition"が追加されます。
    • 一つの配列の配列要素の個数が20,000個までに制限されています。20,000個までの要素からなる配列を複数個定義することは問題ありません。たとえば
      // 100 × 300 = 30,000 個の要素からなる配列
      char chMTRX30K[100][300];
      
      は実行時エラーになります(構文解析でのエラーにはなりません)が
      // 100 × 200 = 20,000 個の要素からなる配列
      char chMTRX20K_1[100][200];
      // 100 × 200 = 20,000 個の要素からなる別の配列
      char chMTRX20K_2[100][200];
      
      は構文解析時、実行時共にエラーにはなりません。尚この制限は要素数のみの制約であり(したがって32/64ビット版双方に適用されます)要素のデータ型には無関係ですので、たとえば一つのソースコードの中に
      // 20,000個の符号付き8ビット整数要素を持つ配列
      char chMatrx20K_1[100][200];
      // 20,000個の符号付き8ビット整数要素を持つ別の配列
      char chMatrx20K_2[100][200];
      
      // 20,000個の符号付き32ビット整数要素を持つ配列
      int intMatrx20K[100][200];                   
      // 20,000個の単精度浮動小数点数要素を持つ配列
      float fltMatrx20K[100][200];                 
      // 20,000個の倍精度浮動小数点数要素を持つ配列
      double dblMatrx20K[100][200];                
       // 20,000個の単精度複素数要素を持つ配列
      complex cmplxMatrx20K[100][200];
      // 20,000個の倍精度複素数要素を持つ配列
      double complex dblcmplxMatrx20K[100][200];
      
      のように最大20,000個までの要素を持つ配列を異なるデータ型で複数個定義することも可能です。唯一の制約は使用可能なメモリ容量だけです。
 
Q 3. ■ ノードロックライセンスの特徴
ノードロックライセンスの特徴について教えてほしい。
A 3. ノードロックライセンスは、お客様が特定の PC でのみ Ch Professional を永続的に使用するためのライセンスです。ノードロックライセンスには次の特徴があります。
  • 有償です。事前に御購入いただいた記録がある場合にのみ弊社は申請を受け付けます。
  • 一つのノードロックライセンスは同時には一台の PC 上でしか有効化することはできません。
  • 有効期間の期限はありません。

注:
ノードロックライセンスを導入した PC が不調になったなどの場合、そのまま他の PC にノードロックライセンスを移動させることはできません。ノードロックライセンスを移動させるには所定の手続きが必要です。詳細については下記弊社営業担当までお問い合わせ願います。

〒169-0073 東京都新宿区百人町1-22-17
株式会社ラネクシー 第2営業本部 プロダクト&システム営業部
FAX:03-5337-6120, TEL:03-5337-6435
E-mail: edu_sales@runexy.co.jp

 
Q 4. ■ フローティングライセンスの特徴
フローティングライセンスの特徴について教えてほしい。
A 4. フローティングライセンスは、ネットワークで接続された複数台の PC で Ch Professional を使用するためのライセンスです。フローティングライセンスには次の特徴があります。
  • 有償です。事前に御購入いただいた記録がある場合にのみ弊社は申請を受け付けます。
  • ネットワーク内の一台の PC がフローティングライセンスサーバとして機能し、他の PC はフローティングライセンスクライアントとして動作します。
  • ネットワーク内で「同時に Ch Professional を起動できる PC の台数」のみがフローティングライセンスサーバによって管理され、個別のフローティングライセンスクライアントそれ自体は管理されません。


たとえば上のネットワークを考えてみましょう。このネットワークはセグメント 192.168.105/24 と定義され、「ライセンスサーバ」と記した PC も含め現在20台の PC が接続されています。「ライセンスサーバ」と記した PC が Ch Professional のフローティングライセンスサーバとして機能し、この PC 上に Ch Professional を起動できる PC の台数が設定されています。この台数が
  • 20の場合、ライセンスサーバ自身を含め、同時に20台の PC 上で(したがってこのネットワーク上の全ての PC 上で) Ch Professional を起動することができます。
  • 10の場合、ライセンスサーバ自身を含め、同時に10台の PC 上で Ch Professional を起動することができます。どの PC 上で Ch Professional を起動するかは全く任意ですが、同時に Ch Professional を起動する PC の台数が10台を超えることはできません。たとえば既にライセンスクライアント#1から#10までの10台の PC 上で既に Ch Professional が起動されている時、新たにライセンスクライアント#19上で Ch Professional を起動することはできません。#1から#10までの少なくともどれか一つの PC 上での Ch Professional の使用が完了すれば#19上で起動することができます。またライセンスクライアント#1から#9までの9台の PC 上で既に Ch Professional が起動されている場合、#10から#19までのどれか一台でのみ新たに Ch Professional を起動することが可能です。
二番目の例からわかりますように、Ch Professional を起動する PC が固定されるのではなく「浮動的」又は「流動的」(floating)であることが、このライセンス方法が「フローティング」ライセンスと呼ばれる理由です。

注意!
  • フローティングライセンス下での動作はアプリケーション共有ではありません。ライセンスサーバはあくまでも Ch Professional を起動できる台数と現にどの PC 上で Ch Professional が起動されているかを管理するだけであり、ライセンスサーバ上にインストールされた Ch Professional をクライアントから共有することはできません。各クライアントには個別に Ch Professional をインストールする必要があります。
  • ライセンスサーバを仮想マシン上にインストールして動作させることはできません。ライセンスクライアントを仮想マシン上にインストールして動作させることは可能です。
  • ライセンスの使用カウントは仮想マシンも含め PC 単位で管理されます。したがって、たとえばネットワーク内でただ一台の PC 上で既に Ch コンソール一個を起動している場合、同じ PC 上で ChIDE を起動する或いはもう一つ新たに Ch コンソールを起動することは可能であり、その場合も使用ライセンス数は1のままです。但し同じPCの上に Windows 仮想マシンを一個立て実マシン上と仮想マシン上でそれぞれ Ch Professional を起動する場合には、ライセンス・サーバからは実マシンも仮想マシンも互いに独立したマシンとみなされますから、使用ライセンス数は2になります
  • 「 Ch Professional の使用が完了」するとは、その PC 上で全ての Ch コンソール及び ChIDE を終了させる、一般的にはこれらのウィンドウ全てを閉じることを意味します。上記のように一旦ライセンスサーバによって使用が承認された後の PC 上ではいくつでも Ch コンソール或いは ChIDE を開くことができ、一個でもウィンドウが開かれている場合その PC 上で Ch Professional が使用中であるとみなされます。

注:
ライセンスサーバに使用している PC が不調になったなどの場合、そのまま他の PC をライセンスサーバとして稼働させる(フローティングライセンスを移動させる)ことはできません。フローティングライセンスを移動させるには所定の手続きが必要です。詳細については下記弊社営業担当までお問い合わせ願います。尚ライセンスサーバ配下の PC についてはそのような制限はありません。フローティングライセンス申請時にお送りいただいた台数の範囲内で32ビットWindows/64ビットWindowsいずれにでも置き換えることができます。

〒169-0073 東京都新宿区百人町1-22-17
株式会社ラネクシー 第2営業本部 プロダクト&システム営業部
FAX:03-5337-6120, TEL:03-5337-6435
E-mail: edu_sales@runexy.co.jp

 
Q 5. ■ 評価ライセンスの有効化
評価ライセンスを有効化するにはどのような手続きを取ればよいか?
A 5. 評価ライセンスを有効化するのに特に手続きを行う必要はありません。評価ライセンスはCh Professionalをインストールすれば直ちに有効になり30日間の評価期間が与えられます。
 
Q 6. ■ ノードロックライセンスの有効化
ノードロックライセンスを有効化するにはどのような手続きを取ればよいか?
A 6. ノードロックライセンスはお客様からの申請により弊社及び開発元での処理を経てお客様に提供されます。その具体的な手順については製品付属の補足説明書または製品CD-ROMに格納されている「初めにお読みください.chm」又は「初めにお読みください.txt」をご参照願います。
 
Q 7. ■ フローティングライセンスの有効化
フローティングライセンスを有効化するにはどのような手続きを取ればよいか?
A 7. フローティングライセンスはお客様からの申請により弊社及び開発元での処理を経てお客様に提供されます。その具体的な手順については製品付属の補足説明書または製品CD-ROMに格納されている「初めにお読みください.chm」又は「初めにお読みください.txt」をご参照願います。
 
Q 8. ■ 旧バージョンからのバージョンアップ
旧バージョンからのバージョンアップは可能か?
A 8. 前バージョンのスクールパックライセンスをお持ちのお客様は、バージョンアップ価格にてCh Professional 6.3のアカデミックライセンスをご購入いただけます。パッケージ版をお持ちのお客様は、新規でCh Professional 6.3をご購入ください。


インストールに関する質問

Q 1. ■ インストールメディアの内容について
Ch Professional のインストールメディアを受け取ったが32ビット版と64ビット版とでインストールメディアの内容は違うのか?
A 1. 結論から先にいえば32ビット版と64ビット版とでインストールメディアの内容に違いはありません。Ch Professhional のインストールメディアには、次のファイルが含まれています。
chprofessional-6.3.0.exe
Ch Professional V6.3 32ビット版のインストーラ
chprofessional-6.3.0-x64.exe
Ch Professional V6.3 64ビット版のインストーラ
はじめにお読みください.chm
Ch Professional V6.3 の特徴、ライセンス、インストール手順等方法を説明したコンパイル済みHTMLファイル。目次も用意されており、HTML ヘルプ・ビューアー hh.exe がインストールされていれば(Windows 98 以降の殆ど全ての Windows 上で標準インストールされています)画面上でクイックにナビゲートしながら各項目を閲覧することができます。スクリーンショット例も多く含まれていますので、必要項目をビジュアルに確認することができます。
はじめにお読みください.txt
「はじめにお読みください.chm」と同一内容のテキストファイル。Windows 標準添付の「メモ帳」(notepad.exe)その他任意のテキストエディタでオープンできますがテキスト・ファイルという性格上スクリーンショットなどは含まれておらず目次をたどってナビゲートすることもできません。 印刷するにはこちらの方が便利です。
 
Q 2. ■ オートランについて
Ch Professional のメディアをCDドライブにセットしたが何も起こらない。メディアの不良では?
A 2. メディアの不良ではなくこれは仕様です。現在のCh Professional のインストールメディアにはCh Perofessional V6.3 32ビット版/64ビット版双方のインストーラが格納されておりますが、32/64ビットのプラットフォームに対応したインストーラを自動的に起動する機能は Windows にはありません。32ビット/64ビットそれぞれに対応したインストーラを手動で起動していただく必要があります。エクスプローラ上でCD-ROMアイコンをダブルクリックするなどしてインストーラ・ファイルを特定しそれをダブルクリックしてください。インストーラが起動されますのでその後は補足説明書又は「はじめにお読みください.chm」等をご参照いただきながら画面の指示に従って操作していけばCh Professionalインストールすることができます。尚インストーラが起動してからインストールが完了するまでの所要時間は10分程度(マシンにより多少差が出ることがあります)であり、完了後マシンをリブートする必要もありません。但しインストール中はフルスクリーンモードで表示され通常ならば画面下部に表示されるタスクバーも表示されませんのでご注意願います。


プラットフォーム構成に関する質問

Q 1. ■ ミックス・プラットフォームについて(その1)
フローティングライセンスの場合において、ライセンスサーバには64ビット版 Windows を使いクライアントだけ32ビット版 Windows を使いたいが可能か?
A 1. 可能です。ライセンス申請時にライセンスサーバ及びクライアントのプラットフォームをお知らせください。勿論その逆も可能です。
 
Q 2. ■ ミックス・プラットフォームについて(その2)
フローティングライセンスの場合において、ライセンスサーバには64ビット版 Windows を使いクライアントは半数に32ビット版 Windows を、残る半数に64ビット版Windows を使いたいが可能か?
A 2. 可能です。ライセンス申請時にライセンスサーバ及びクライアントのプラットフォーム毎の台数(ライセンスサーバが Win64、クライアントはWin32が何台、Win64が何台のように)をお知らせください。
 
Q 3. ■ ミックス・プラットフォームについて(その3)
ノードロックライセンス10台分を購入したが、インストール先の PC の内半数に32ビット版 Windows を、残る半数に64ビット版Windows を使いたい。可能か?
A 3. 可能です。ライセンス申請時にインストール先の PC それぞれについて MAC アドレスとプラットフォームをお知らせください。


コーディングに関する質問

Q 1. ■ 単項増減演算子の振る舞いについて
int i = 0;
int a[] = {0, 10, 20, 30, 40};
printf("%d\n", i);
printf("%d - %d\n", i++, a[i++]);
の2行目がVisual C++6では0 - 0、とChでは1 - 0 と異なって表示されるがChのバグではないのか?
A 1. バグではありません。Ch Professionalはgnu gccの考え方に従って後置インクリメント演算子を処理します。この2行目のprintf文には三つのパラメータ、書式指定文字列、i++及びa[i++]が与えられておりますが、Visual C++6はこれを
  1. a[0]の値0をスタックにプッシュ
  2. iのインクリメント前の値0をスタックにプッシュ
  3. 書式指定文字列(へのポインタ)をスタックにプッシュ
  4. printfランタイムライブラリをコール
  5. i = i + 1
の順序で実行するようにコンパイルします(したがってビルドされた結果を実行すると出力"0 - 0"が得られます)。これに対して、Chは
  1. a[0]の値0をスタックにプッシュ
  2. i = i + 1(最後のパラメータ"a[i++]"のi++です。この結果iの値は1になります)
  3. iのインクリメント前の値1をスタックにプッシュ
  4. 書式指定文字列(へのポインタ)スタックにプッシュ
  5. i = i + 1(二番目のパラメータ"i++"のi++です。この結果iの値は2になります)
  6. printfランタイムライブラリをコール
の順序で実行し、このため出力は"1 - 0"となります。
Cを拡張した規格にはC90/C99の二種類がありますが、いずれもポスト・インクリメント演算子については「値を取り出してからインクリメントする」ことが定められているだけで、複数個のパラメータの中の相互関係までは規定されておりません。したがってVisual C++の動作もChの動作も規格に鑑みていずれが誤りとも正とも断定できません。尚Visual C++2005/2008ではChと同じ動作をすることも合わせて記載しておきます。混乱を避けるならば値の取り出しとそれに対する単項増減演算を別々の文で行なう、たとえば上のVisual C++6流の結果をほしいのであれば
int i = 0;
int a[] = {0, 10, 20, 30, 40};
printf("%d\n", i);
printf("%d - %d\n", i, a[i]);
i++;
のようにコーディングすることをお勧めします。
 
Q 2. ■ int型データのバイト長について
int型データはCh Professionalでは何バイトを占めるのか?
A 2. int型データは、「そのコンピュータにとって最も効率よく処理できるビット幅」と定義されており、具体的なバイト幅またはビット幅は実装依存(ハードウェアとしての「コンピュータ」だけでなく、オペレーティングシステムやコンパイラ/インタプリタなど言語処理系も含めた意味で「コンピュータ」と呼んでいます)とされています。int型データ一つは、Ch Professional 32ビット版を32ビット版Windowsにインストールした場合には32ビット=4バイトを占め、Ch Professional 64ビット版を64ビットWindowsにインストールした場合には64ビット=8バイトを占めることになります。またポインタの占めるバイト数はint型データのバイト数と等しくなります。たとえばCh Professional 32ビット版の場合(プラットフォームは32ビット版 Windows とします)において
int i;              // int型変数
char c;             // char型変数
float f;            // float型変数
int* pi = &i;       // 変数iへのポインタ
char* pc = &c;      // 変数cへのポインタ
float* pf = &f      // 変数fへのポインタ
において、i, c 及び fはそれぞれ4バイト、1バイト及び4バイトを占めますがpi, pc 及び pfは全て4バイトを占めます(sizeof()で簡単に確認できます)。

尚同じデータ型を続けて宣言した場合、たとえば
int a, b;
のような場合、二つの変数がメモリ上で必ずしも隣り合うとは限りません(即ち&b = &a + 4になる保証も&a = &b + 4になる保証もありません)。それを保証したいならば配列を使って
int a[2];
のようにするか又は構造体の中で
struct myStruct{
  int a;
  int b;
}
のように定義する必要がありますが、構造体の場合それを構成する各要素のデータ型が異なるとそれも満たされるとは限りません(各データのアラインメントの問題が発生するからです)。但し個々の変数のアドレス自体が関心事になることはあっても変数間でアドレスが「連続」していなければならないことが問題となることはほとんどありません(構造体内の個々の要素を特定できれば多くの場合には充分です)のでそれほど気にする必要はありません。当社で実験した結果の一例を参考のため以下に例示しておきます。

コード例
struct str_pureint{
    int a;
    int b;
};  // int型の要素だけからなる構造体

struct str_typemixed{
    int a;
    char c;
    int b;
};  // 異なるデータ型の要素からなる構造体

int main()
{
    int i;             // int型変数
    char c;            // char型変数
    float f;           // float型変数
    int* pi = &i;      // int型変数へのポインタ
    char* pc = &c;     // char型変へのポインタ
    float* pf = &f;    // float型変数へのポインタ
    int a,b;           // int型変数2個
    int aa[2];         // int型配列
    str_pureint X;     // int型だけを構成要素とする構造体変数
    str_typemixed Y;   // 異なるデータ型の構成要素を持つ構造体変数
   
    printf("Size of : int = %d, char = %d, float = %d\n",
    sizeof(i), sizeof(c), sizeof(f));
    printf("Size of pointer to variable: int = %d, char = %d, float = %d\n",
    sizeof(pi), sizeof(pc), sizeof(pf));
    printf("Address of : a = %X, b = %X\n", &a, &b);
    printf("Address of : aa[0] = %X, aa[1] = %X\n", &aa[0], &aa[1]);
    printf("Address of : str_pureint.a = %X, str_pureint.b = %X\n",
    &X.a, &X.b);
    printf("Address of : str_typemixed.a = %X\n", &Y.a);
    printf("Address of : str_typemixed.c = %X\n", &Y.c);
    printf("Address of : str_typemixed.b = %X\n", &Y.b);
    return 0;
}
実験結果
Size of : int = 4, char = 1, float = 4
Size of pointer to variable: int = 4, char = 4, float = 4
Address of : a = 3B9EE70, b = 3B9EEA0
Address of : aa[0] = 3B9EF60, aa[1] = 3B9EF64
Address of : str_pureint.a = 3B9EFD8, str_pureint.b = 3B9EFDC
Address of : str_typemixed.a = 3B9C520
Address of : str_typemixed.c = 3B9C524
Address of : str_typemixed.b = 3B9C528
この例から明らかな通り、int 型の要素だけから構成される構造体では各要素は4バイト毎に連続して並んでいますが、int 型データと char型データとを含む構造体の場合char型データの後のint型データはchar型データのすぐ後ではなくその4バイト後に配置されています(つまり3バイトのギャップ又は未使用エリアがあることになります)。

科学技術計算向け機能に関する質問

Q 1. ■ 科学技術計算向けの機能
Ch Professionalには科学技術計算向けにどのような機能があるのか?
A 1. Ch Professionalは科学技術計算のため次のような多くの機能を持っています。
  • 複素数型データの提供
  • 初等数学関数
  • データ解析と統計
  • データ補間とカーブ・フィッティング
  • 多項式
  • 非線型方程式の解
  • 行列計算
  • 微積分及び微分方程式の数値解法
  • フーリエ変換と畳み込みなどのフィルタリング操作
その他、計算した結果をグラフまたはアニメーションでグラフィカルに表示することも可能です。
 
Q 2. ■ 複素数の扱い
Ch Professionalでは複素数をどのように扱えるのか?
A 2. Ch Professionalでは複素数はISO C99規格に則り実数と同様基本的なデータ型として扱われ、複素数z = x + iy(但しiは虚数単位)は複素コンストラクタcomplex(x, y)によって複素型データzとして定義することができる他、実部と虚部が共にdouble型実数であるdouble complex(x, y)として定義することもできます。このようにして定義された複素型データに対しては複素数の数学的定義に従って複素共役、加減算、乗除算、絶対値と偏角等を算出することができる他、実数に対する関数を拡張した指数関数、対数関数、冪、三角関数及び逆三角関数、双曲線関数及び逆双曲線関数等が定義されています。勿論実部又は虚部を個別に取り出すことも可能です。又複素無限大及び複素非数も定義されています。詳細についてはユーザーズガイド(製品付属または当社Webサイトからダウンロードできます)をご参照願います。
 
Q 3. ビルトイン初等関数
Ch Professionalにはどのような初等数学関数がビルトインされているのか?
A 3. Ch Professionalはそれがサポートしているデータ型に対して絶対値、平方根、指数関数、対数関数、三角関数、逆三角関数、双曲線関数、逆双曲線関数などの初等関数を提供しています。これらの全ての関数はポリモーフィックに定義されており、同じ関数名を指定して単精度浮動小数点数をパラメータに与えれば単精度浮動小数点の結果(又は非数)が、倍精度浮動小数点数をパラメータに与えれば倍精度浮動小数点の結果(又は非数)が、複素数をパラメータに与えれば同じ精度の複素数(又は非数)が、返されます。与えられた浮動小数点値よりも小さくない最小の整数値または与えられた浮動小数点値よりも大きくない最大の整数値を返す関数もあります。詳細についてはユーザーズガイド(製品付属または当社Webサイトからダウンロードできます)をご参照願います。
 
Q 4. ■ データ解析と統計
Ch Professionalは統計データに対してどのような操作ができるのか?
A 4. 配列に入力されたデータを対象として、配列内のデータの最大値、最小値、合計、平均値、中央値(メディアン)、標準偏差、共分散、相関係数などを算出することができます。詳細についてはユーザーズガイド(製品付属または当社Webサイトからダウンロードできます)をご参照願います。
 
Q 5. ■ データ補間とカーブ・フィッティング
Ch Professionalではどのような方法でデータ保管およびカーブフィッティングができるのか?
A 5. 1次又は3次のスプライン曲線を使って既知のデータから未知のデータを補間推定します。たとえば一次元の場合、y=sin(x)の値の組がいくつかの点で与えられていたとして、与えられた以外のxに対するyの値を(関数を計算することなく補間によって)推定します。一次元y=f(x)の場合と二次元z=f(x, y)の場合について補間推定ができます。

カーブフィット関数は既知の関数または多項式の係数付き和が与えられたデータ点を最もよく近似するように係数を算出します。以上の詳細についてはユーザーズガイド(製品付属または当社Webサイトからダウンロードできます)をご参照願います。
 
Q 6. ■ 多項式
Ch Professionalは多項式に対してどのような操作ができるのか?
A 6. 与えられた独立変数の値に対する多項式の値、又は多項式の導関数の係数を算出することができます。又代数方程式(多項式=0の形の方程式)の根を見出すこと、逆に与えられた値を根とする代数方程式の各項の係数を算出することもできます。また複素解析で多く用いられる,多項式の比としてあらわされる数式の極(分母=0とする値)等を算出することもできます。詳細についてはユーザーズガイド(製品付属または当社Webサイトからダウンロードできます)をご参照願います。
 
Q 7. ■ 非線型方程式の解
Ch Professionalはどのような方法で非線型方程式の解を見出すのか?
A 7. 非線型方程式の左辺と解がその間に存在するであろうと予想される範囲を与えて解を求めます。詳細についてはユーザーズガイド(製品付属または当社Webサイトからダウンロードできます)をご参照願います。
 
Q 8. 行列計算
Ch Professionalでは行列に対してどのような操作を行なうことができるのか?
A 8. Ch Professionalは行列を二次元配列として扱い、行列を利用した次の計算を行なうことができます。
  • 行列の分解
  • 正方行列に対する逆行列の導出
  • 非正方行列に対する疑似逆行列の導出
  • 連立一次方程式の解の導出
  • 正方行列の固有値と固有ベクトルの導出
  • 行列の分解
詳細についてはユーザーズガイド(製品付属または当社Webサイトからダウンロードできます)をご参照願います。
 
Q 9.
Ch Professionalではどのような定積分及び微分方程式の数値解法ができるのか?
A 9. Ch Professionalは、直交座標系上の一次元、二次元及び三次元定積分を算出することができます。また常微分方程式の数値解を求めることもできます。詳細についてはユーザーズガイド(製品付属または当社Webサイトからダウンロードできます)をご参照願います。
 
Q 10.
Ch Professionalではどのようなグラフをプロットできるのか?
A 10 Ch Professionalは二次元または三次元の直交座標または極座標でのグラフを描くことができ、そのためPlotクラスが提供されています。プロットすべき値は先に配列の形で算出しておいて一度にPlotクラスに与えることもPlotクラスに関数とプロット範囲の上下端値を与えてPlotクラスの中で算出させることもできます。プロットされたグラフは既定でディスプレイ上に描画されるほか、PNG或いはJPEG等の形式でファイルに保存することもできます。詳細についてはユーザーズガイド(製品付属または当社Webサイトからダウンロードできます)をご参照願います。
 
Q 11.
Ch Professionalではどのようなアニメーションを表示できるのか?
A 11. たとえば力学系の運動方程式が解けてさえいれば、Ch Professionalは質点の動きなど当該力学系の振る舞いをアニメーション表示することができます。詳細についてはユーザーズガイド(製品付属または当社Webサイトからダウンロードできます)をご参照願います。
 
Q 12.
Ch Professionalではどのようなフィルタリング操作を行なうことができるできるのか?
A 12. Ch ProfessionalはFFT及び逆FFTの他、周波数領域で表されたデータに対して乗算を行ないそれを逆FFTすることで時間領域または空間領域で言うたたみこみを行なうことができます。FFT/逆FFTのペアとフィルタ関数を使えば、インパルス応答が知られている線形系に任意の入力を与えた時の出力応答を周波数領域ではもちろん時間領域または空間領域ででも導出することができます。FFT/逆FFTのペアを使えば相互相関係数を求めることもできます。詳細についてはユーザーズガイド(製品付属または当社Webサイトからダウンロードできます)をご参照願います。
 
Q 13. ■ 計算配列について
行列計算についての回答によれば連立一次方程式の解とか正方行列の固有ベクトルまたは逆行列を導き出すこともできるようだが具体的にどのように指定しどのように返されるのか?
A 13. Ch Professionalには計算配列という配列があり、これを使えば行列を使った線形代数学の数式をそのまま配列の形で扱うことができます。たとえば正則な正方行列Aの逆行列Bは数学的にはB=A-1と表されますがCh Professionalでは変数名を数学的記法と同じとして
B = inverse(A);
とかけば変数Bに正方行列Aの逆行列が返されます.また既知の列ベクトルb及び正則な正方行列Aに対して線形連立一次方程式は未知の列ベクトルをxとして数学的にAx=bと表されその解xはx=A-1bと表されますが、変数名をこの数学的記法と同じとしてCh Professionalでは
x = inverse(A) * b;
とかけば変数xに解ベクトルが返されます(専用の関数linsolve(x, A, b)を使う方法もありますが、線形代数学での記法との親和性の点ではこの方が有利かとも思われます)。以下にその簡単な例を示します。

サンプルコード:
#include <array.h>

int main(void) {
    array double x[3];
    array double b[3] = {2, 13, 25};
    array double A[3][3]  = {{3, 0, 6},
                             {0, 2, 1},
                             {1, 0, 1}};
    x = inverse(A) * b;
       printf("x = %.2f\n", x);
    
    return 0;
}
実行結果:
x = 49.33, 18.67, - 24.33
計算配列にはここで紹介した特質の他要素単位での演算ができる等の特徴がありますが、いずれも配列名だけを指定するだけで済む(配列を単純なスカラ変数と全く同様に扱うことができる)ことが最大の特徴です。詳細についてはユーザーズガイド(製品付属または当社Webサイトからダウンロードできます)をご参照願います。


ChIDEに関する質問

Q 1. ■ Debug Console Windowを消す方法
作成したC/C++/Chアプリケーションをデバッグ実行終了後Debug Console Windowが消えず最小化ボタン(普通ウィンドウの右上隅に表示される「×」のボタン)も使えない。このウィンドウを消す方法は?
A 1. デバッグ実行(F5キーを押す、等して開始)完了後Debug Console Windowを消すには、ChIDEの「表示」→「Debug Console Window」をクリックするかChIDEにフォーカスを当てた(ChIDEのタイトルバーをクリックするなどして)後F11キーを押し下げてください。
 
Q 2. ■ Ch IDE上でのコンパイル/ビルド
作成されたC++のソースコードをChIDE上でコンパイル/ビルドしたい。どのようにすればよいか?
A 2. Ch Professional自身はインタプリタでありChIDEはフロントエンドに過ぎませんのでそれ自体でソースコードをコンパイル/ビルドすることはできません。マイクロソフト社のVisual Studio等のコンパイラを別途インストールしてChIDEからこれを呼び出すことができるように設定する必要があります。コンパイラのインストール後、次の手順に従ってください。
  1. ChIDEの[オプション]→[Chのローカル初期化ファイルを開く]の順にクリックして_chrcファイルをオープンしてください。
  2. いくつかの代表的なコンパイラ、たとえば Microsoft Visual C++6、Microsoft Visual Studio 2003/2005/2008などについてはこれらの標準的なインストールを前提としたパス指定などが記入後コメントアウトされていますので、ご使用になるコンパイラに合わせて適切な個所をアンコメントした後必要に応じてパス指定を変更してください。他のコンパイラについては、Visual C++6等の記述を参考にして、実行ファイルやヘッダ・ファイル及びライブラリのパスを設定してください。
  3. 上書き保存してください。
  4. ChIDEを一旦終了後再起動してください。
  5. ChIDEの[ツール]→[コンパイル]又は[ツール]→[ビルド]の順にクリックしてコンパイルまたはビルド動作が正常に行なわれるか確認してください(簡単なプログラム、たとえば「hello.c」を使ってビルドまたはコンパイル過程が正常に進むか否かだけを確認してください)。
  6. コンパイル/ビルドが正常に進めば設定は完了です。文法上又はリンク時のエラーが発生した場合には、出力ウィンドウに表示されたメッセージを手掛かりに、ローカル初期化ファイル「_chrc」のパス指定やソースコードの修正等を行なってください。
 
Q 3. ■ 省略形の使い方と定義
省略形を使いたいが、どのような省略形を使うことができるのか?また独自に定義して使用することはできるのか?
A 3. 省略形は「省略形」を入力して直後にCtrl+Bを押すことによりいつでも使用することができます(たとえば"stdlib.h"と入力して直後にCtrl+Bを押すと現在のカーソル位置に
#include <stdlib.h>(改行)
が挿入されます)。現在定義されている省略形は
ChiDE.abbrev
ChIDEの[オプション]→[Open ChiDE Global Abbreviations File]で表示されます。
ChiDEUser.abbrev
ChIDEの[オプション]→[Open ChiDE User Abbreviations File]で表示されます。
に記載されており、このファイルを編集して保存することにより省略形を独自に追加して利用することが可能になります。

省略形は
  省略形 = 展開後の文字列
の形で定義されており(たとえば省略形「stdlib.h」はChiDE.abbrevの中で
stdlib.h=#include <stdlib.h>|
の形で定義されています)、バーティカルバー(「|」)は展開後に文字を追加するためのプレース・ホルダーです(たとえば省略形「COM」はChIDE.abbrevの中で
COM=/* | */
の形で定義されており、"COM"、Ctrl+Bと入力した後コメントをバーティカルバーの個所に上書きすることができます。省略形の定義の中では改行記号(「\n」)も受け付けますので、展開後には複数行になる場合でも定義時に一行に収まりさえすれば省略形として定義することができます。たとえばmain関数のひな型は省略形「main」としてChiDE.abbrevの中で

main=int main() {\n    |    \n    return 0;\n}
と定義されており(コマンドライン・パラメータ付きのmain関数のひな型は省略形「mainarg」として別に定義されています)、"main"、Ctrl+Bと入力すると

int main() {

return 0;
}
と展開されます。



製品に関するお問い合わせやご購入
お問い合わせ