Main Content

生成されたコードのデータ型の問題

固定小数点への変換のレポート内で、double、single、あるいは計算量の多い固定小数点演算を行う MATLAB® コードを強調表示するオプションがあります。厳密な single または固定小数点の設計を行うときは、このオプションを有効にすることを検討してください。

これらのチェック機能は、既定で無効になっています。

プロジェクトでの強調表示オプションの有効化

  1. [設定] メニューを開きます。

  2. [プロットとレポートの実行中] の下の [潜在的なデータ型の問題を強調表示][はい] に設定します。

コマンド ラインでの強調表示オプションの有効化

  1. 固定小数点コードの構成オブジェクトを作成します。

    cfg = coder.config('fixpt');

  2. 構成オブジェクトの HighlightPotentialDataTypeIssues プロパティを true に設定します。

    cfg.HighlightPotentialDataTypeIssues = true;

潜在的な double の検出

厳密な single または固定小数点の設計を行うときに、コードを手動で検査するのは時間がかかる上、間違いも起こりがちです。このチェックでは、double の演算になる式をすべて強調表示します。

潜在的な single の検出

このチェックでは、single の演算になる式をすべて強調表示します。

計算量の多い固定小数点演算

計算量の多い固定小数点演算のチェックでは、固定小数点コードの最適化の機会が特定されます。煩雑な乗除算、計算量の多い丸め、計算量の多い比較またはマルチワード処理を必要とする MATLAB コード内の式が強調表示されます。生成される固定小数点コードの最適化の詳細は、生成コードをより効率的にするためのヒントを参照してください。

煩雑な演算

煩雑な演算が発生する原因の多くは、出力範囲が不足していることです。乗算や除算の入力に、プロセッサの基本整数型より長い語長を使用しないでください。長い語長のデータ演算はソフトウェアで扱うことができますが、大量のコードを必要とし、演算に要する時間が長くなります。

計算量の多い丸め

従来の手書きのコード、特に制御アプリケーションのコードでは、ほとんど常に "手間のかからない" 丸めが使用されます。たとえば、符号なしの整数と 2 の補数の符号付き整数の場合、右にシフトしてビットを切り捨てることは、負方向の丸めと等価です。従来の手書きコードと同等以上の結果を得るには、floor の丸め方法を使用してください。このチェック機能は、乗算と除算に含まれる計算量の多い丸め演算を特定します。

計算量の多い比較演算

比較を実行するために型変換が必要な場合、比較演算時に追加のコードが生成されます。たとえば、符号なし整数と符号付き整数を比較するときには、あらかじめ一方の入力を他方の符号属性に合わせて型変換する必要があります。生成されたコードで型変換が不要になるように、入力引数のデータ型を最適化することを検討してください。

マルチワード処理

ハードウェアのマルチワード処理は、非効率になる可能性もあります。プロセッサの最大ワード サイズより大きい入力または出力データ型がある処理の場合、生成されたコードにはマルチワード処理が含まれます。変数のローカル fimath プロパティを指定することで、生成されたコード内のマルチワード処理を回避できます。また、マルチワード コードを生成する処理の入力と出力の語長を手動で指定することもできます。