from math import copysign, ldexp
def binary16_value(word):
if type(word) is not int or not 0 <= word <= 65535:
raise ValueError("binary16.word")
sign = -1.0 if word & 0x8000 else 1.0
exponent, fraction = (word >> 10) & 31, word & 1023
if exponent == 31:
return copysign(float("nan") if fraction else float("inf"), sign)
value = ldexp(fraction, -24) if exponent == 0 else ldexp(1024+fraction, exponent-25)
return copysign(value, sign)| 適用前に確認 | 実際の動作を期待する結果と比較します。検証に失敗した場合は、次の変更を加える前に原因を調べてください。 |
|---|---|
| モデル | OpenAI互換またはAnthropicのエンドポイントを、ベースURLと必要なAPIキーで設定し、接続をテストします。ローカルのモデルサーバーは起動が必要です。リモートツールは別途データを送信する場合があります。 |
| プロジェクト | 符号付きゼロ、非正規化数、無限大、NaNを試し、NaNペイロードを保持せず真偽値や範囲外の語を拒否します。 |
from math import copysign, ldexp
def binary16_value(word):
if type(word) is not int or not 0 <= word <= 65535:
raise ValueError("binary16.word")
sign = -1.0 if word & 0x8000 else 1.0
exponent, fraction = (word >> 10) & 31, word & 1023
if exponent == 31:
return copysign(float("nan") if fraction else float("inf"), sign)
value = ldexp(fraction, -24) if exponent == 0 else ldexp(1024+fraction, exponent-25)
return copysign(value, sign)通常の値以外も含めてコンパクトな数値形式をレビューする
HalfJuniaは、表現に敏感なソース変更を検討するWindows向けAIコーディングソフトウェアです。デコードした値が誤って見える場合は、元のワード、観測結果、期待する解釈をプロジェクトの会話に示してください。特殊値にも使われるかもしれない分岐を変える前に、関連ソースを接続したモデルに調べてもらいます。
例えばbinary16のデコードでは、符号付きゼロ、非正規化数、無限大、NaNの明示的な処理が必要です。入力が符号なし16ビットワードであることと、NaNペイロードの保持が要件外かどうかを明記します。これにより、実装案と呼び出し側を比較できる限定された仕様になります。
自分の環境で各分類の代表的なワードを確認してください。符号付きゼロには実際に符号を区別できる観測を、NaNには通常の等価比較ではなく適切な分類判定を使います。真偽値や範囲外の入力の拒否は別途レビューしてください。よくある有限値も有用ですが、見落としやすい分岐を網羅しません。
HalfJuniaは対応するOpenAI互換またはAnthropicのエンドポイントに接続し、必要なら認証情報を使います。プロバイダーが提供すれば、コーディングの会話でフィルターなしAIモデルを選択できます。制限、コンテキスト容量、ツールはモデルとサーバーに依存し、説明も検証すべき提案であることに変わりありません。
数値形式のレビューを準備する
予期しないデコード値にはどの証拠を添えますか?
正確な入力ワード、期待する分類、観測結果、利用する呼び出し側を示してください。丸めた表示文字列だけに頼らず、表現の処理と後段の表示処理を区別できる詳細を提示します。
通常の等価比較ですべての特殊値を検証できますか?
いいえ。ゼロの符号を区別する観測や適切なNaN判定など、分類に適した検証を選んでください。期待動作を明記し、実環境で実行して、通常の有限値の比較以外もデコーダー案を評価します。
NaNペイロードが保持されると考えてよいですか?
実装が対応する明示的な要件の場合だけです。例のデコード処理はペイロードを保持しません。利用側で必要なら、数値の分類や値だけを返す提案を採用する前に、その別の仕様を説明してください。
拒否のテスト例に真偽値を含めるのはなぜですか?
言語によっては型の関係により、広い整数判定を通過することがあります。実際のワード値を要求し真偽値を除くなら明示してください。曖昧な型の説明に頼らず、許容範囲と併せてその区別を検証します。
HalfJunia · 更新日 2026-10-25