from math import asin, cos, isfinite, radians, sin, sqrt
def central_angle(lat1, lon1, lat2, lon2):
values = (lat1, lon1, lat2, lon2)
if any(type(x) not in (int, float) or not -limit <= x <= limit
or not isfinite(x) for x, limit in zip(values, (90, 180, 90, 180))):
raise ValueError("bounded finite coordinates")
p, q = radians(lat1), radians(lat2)
a = sin((q-p)/2)**2 + cos(p)*cos(q)*sin(radians(lon2-lon1)/2)**2
return 2 * asin(sqrt(min(1.0, max(0.0, a))))モデル
OpenAI互換またはAnthropicのエンドポイントを、ベースURLと必要なAPIキーで設定し、接続をテストします。ローカルのモデルサーバーは起動が必要です。リモートツールは別途データを送信する場合があります。
プロジェクト
一致点と対蹠点を確認し、地球半径を仮定せず非有限座標を拒否します。
適用前に確認
実際の動作を期待する結果と比較します。検証に失敗した場合は、次の変更を加える前に原因を調べてください。
from math import asin, cos, isfinite, radians, sin, sqrt
def central_angle(lat1, lon1, lat2, lon2):
values = (lat1, lon1, lat2, lon2)
if any(type(x) not in (int, float) or not -limit <= x <= limit
or not isfinite(x) for x, limit in zip(values, (90, 180, 90, 180))):
raise ValueError("bounded finite coordinates")
p, q = radians(lat1), radians(lat2)
a = sin((q-p)/2)**2 + cos(p)*cos(q)*sin(radians(lon2-lon1)/2)**2
return 2 * asin(sqrt(min(1.0, max(0.0, a))))変更の全過程で座標の規約を保つ
ArcNerineは、座標関連のソフトウェア開発に、ソース調査とAIとの対話を行うWindowsワークスペースを提供します。実装変更を依頼する前に、ファイルを示し入力数値の意味を説明してください。単位、座標順、許容範囲は動作の一部なので、調整したい計算とともに依頼に含めます。
単位球の中心角の例は有用なレビュー課題です。度単位の入力からラジアンを返すルーチンまで追跡し、呼び出し側が結果をどう使うか調べるよう依頼します。一致する位置と対向する位置を比較し、非有限値の拒否も検討してください。これらを一緒に扱うことで、算術だけでなくインターフェースの前提が変わる編集を見つけやすくなります。
入力チェックと出力利用側を見ながらパッチ案をレビューします。参照ケースを実行し、変換や表示の規則を明示的に検証してください。対応するOpenAI互換またはAnthropicのエンドポイントで利用可能なら、必要な認証情報を設定してフィルターなしモデルの支援を受けられます。ツールとコンテキストの上限はモデルとサーバーによって決まります。目標は規約の整合性を保つアプリケーション変更であり、幾何学の例が作業を確認する具体的な方法を与えます。
コードレビューのための座標の質問
- 例の出力はキロメートルの距離ですか?
単位球上の中心角をラジアンで表したものです。物理的な距離と解釈するには、別のモデルと半径の選択が必要です。明示的な変換なしに角度の結果を距離と表示しないよう呼び出し側をレビューしてください。
- 緯度と経度について何を指定すべきですか?
順序、単位、対応範囲を示し、テストデータにもその期待を含めます。引数を入れ替えても数値としては有効な場合があるため、関数だけでなくデータ源と利用側も調べるよう依頼してください。
- 参照ケースに役立つ位置は?
一致する位置、対蹠点、期待角度が既知の簡単な中間ケースを使います。幾何学的な成功結果が入力境界の弱化を隠さないよう、非有限値と範囲外入力の拒否は別に確認してください。
- クランプで入力検証を置き換えるべきですか?
いいえ。数値のクランプがある理由をレビューし、許容座標のチェックを明示的に維持します。計算内の丸め処理と無効な入力の受け入れは異なり、それぞれ定めた要件に基づいてテストすべきです。
ArcNerine · 更新日 2026-10-25