from math import isfinite
def interpolate(points, query):
def valid(x):
return type(x) in (int, float) and abs(x) <= 10**12 and isfinite(x)
if type(points) is not list or len(points) < 2 or not valid(query):
raise ValueError("knots.input")
if any(type(p) not in (list, tuple) or len(p) != 2 or
not all(valid(v) for v in p) for p in points):
raise ValueError("knots.point")
if any(a[0] >= b[0] for a,b in zip(points, points[1:])):
raise ValueError("knots.order")
if query <= points[0][0]:
return points[0][1]
for (x0,y0),(x1,y1) in zip(points, points[1:]):
if query <= x1:
t = (query-x0)/(x1-x0)
return (1-t)*y0+t*y1
return points[-1][1]| 프로젝트 | 정확한 절점을 시험하고 보간 전에 중복 좌표와 유한하지 않은 값 및 절댓값이 1조를 넘는 값을 거부하세요. |
|---|---|
| 적용하기 전에 검토하세요 | 실제 동작을 예상 결과와 비교하세요. 검사가 실패하면 다음 변경을 하기 전에 원인을 조사하세요. |
| 모델 | 기본 URL과 필요한 API 키로 OpenAI 호환 또는 Anthropic 엔드포인트를 설정하고 연결을 테스트하세요. 로컬 모델 서버는 실행 중이어야 합니다. 원격 도구는 데이터를 별도로 전송할 수 있습니다. |
from math import isfinite
def interpolate(points, query):
def valid(x):
return type(x) in (int, float) and abs(x) <= 10**12 and isfinite(x)
if type(points) is not list or len(points) < 2 or not valid(query):
raise ValueError("knots.input")
if any(type(p) not in (list, tuple) or len(p) != 2 or
not all(valid(v) for v in p) for p in points):
raise ValueError("knots.point")
if any(a[0] >= b[0] for a,b in zip(points, points[1:])):
raise ValueError("knots.order")
if query <= points[0][0]:
return points[0][1]
for (x0,y0),(x1,y1) in zip(points, points[1:]):
if query <= x1:
t = (query-x0)/(x1-x0)
return (1-t)*y0+t*y1
return points[-1][1]수치 동작을 호출 코드의 기대와 일치시키세요
KnotVista는 파일에 관해 모델과 대화할 수 있는 Windows 코딩 작업 공간을 수치 코드 유지보수에 제공합니다. 입력 영역과 경계 동작을 포함해 계산 결과를 사용하는 코드가 기대하는 것부터 정의하세요. 그러면 구현을 단순화하거나 특이한 데이터 처리 방식을 바꾸도록 요청하기 전에 유용한 검토 기준을 세울 수 있습니다.
구간별 보간 예시는 구체적인 프로젝트 작업을 제공합니다. 정렬된 표본점과 양 끝점을 벗어난 질의의 처리를 살펴보도록 모델에 요청할 수 있습니다. 표본점을 준비하고 결과를 사용하는 코드를 포함하면 의도적인 경계 정책과 반복문으로 인해 우연히 나타난 결과를 구분할 수 있습니다.
제안된 변경을 정확한 절점, 절점 사이의 질의, 지원 구간 밖의 값과 대조하세요. 잘못된 순서가 호출 코드에 어떻게 전달되는지도 확인하세요. 프로젝트의 수치 테스트 데이터를 직접 실행하고 합의한 동작과 비교하세요. 매끄러워 보이는 시각화만으로는 경계 정책이나 거부된 입력 처리가 바뀌었는지 알 수 없습니다.
지원되는 OpenAI 호환 또는 Anthropic 엔드포인트에서 제공한다면 제한 없는 AI 모델을 사용할 수 있습니다. 필요하면 인증 정보를 제공하고 해당 연결의 도구와 컨텍스트 용량을 확인하세요. 응답 제한은 여전히 모델과 제공업체에 의해 결정됩니다. 애플리케이션의 수학적 계약은 요구 사항과 수용한 코드로 정해집니다.
수치 코드 유지보수에 유용한 질문
- 표본 범위 밖의 질의에는 무엇을 명시해야 하나요?
가장 가까운 끝점 값을 유지하는 것이 요구 사항이라면 이를 포함해 의도한 끝점 정책을 명시하세요. 모델이 다른 외삽 정책으로 대체하지 않도록 범위 양쪽의 예상 결과를 포함하세요.
- 표본점을 준비하는 코드를 왜 포함하나요?
보간이 시작되기 전의 순서, 중복 위치, 허용되는 숫자 값을 결정하기 때문입니다. 국소적인 변경은 올바르게 보여도 이러한 가정과 충돌할 수 있습니다. 검증이나 정렬을 옮기기 전에 준비 경로를 살펴보도록 모델에 요청하세요.
- 차트만 확인하고 변경을 승인해도 되나요?
차트는 눈에 보이는 동작에 유용하지만 미묘한 경계 변경은 비슷하게 보일 수 있습니다. 절점, 절점 사이, 구간 밖의 명시적인 수치 테스트 데이터를 비교하세요. 성공 결과뿐 아니라 오류가 보고되는 방식도 확인하세요.
- 거부된 데이터 집합은 인터페이스에 어떻게 전달해야 하나요?
호출 코드가 오류를 표시할지, 결과를 생략할지, 다른 기존 규칙을 따를지 정의하세요. 계산과 함께 그 경로를 검토하세요. 애플리케이션 계약이 의도적으로 요구하지 않는 한 그럴듯한 값을 조용히 대신 넣지 마세요.
KnotVista · 업데이트 2026-10-25