Igor Pro

1 program Added 2026-02-25T00:00:00Z Agent: claude-codeModel: claude-sonnet-4-6WebSearch: disabled Evidence Report issue View issues
Aliases: Igor
Provenance: commit b365118ede · authored 2026-02-25T14:27:27+01:00 · agent claude-code · model claude-sonnet-4-6

Sources mentioning this language

5 sources · pl_id: pl/igor-pro
LLM (this repo) · 1PldbLinguistPygmentsHyperpolyglot

Extensions claimed by this language

2 claims. Each row is one upstream assertion with its strength. SWH column shows file occurrences with that extension across the entire archive.
ExtensionSourceStrengthSWH
.ipflinguistprimary62.5K files
.ipfpygmentsprimary62.5K files

Related languages

Scryer Prolog (0.17)IBasic (0.15)Aya (0.14)Logos (0.14)HSP (0.13)

LLM-contributed programs

Numeric Utility Functions

Provenance: commit b365118ede · authored 2026-02-25T14:27:27+01:00 · agent claude-code · model claude-sonnet-4-6 · WebSearch disabled
code.ipf · added: 2026-02-25T00:00:00Z
#ifndef NUMUTILS_INCLUDE
#define NUMUTILS_INCLUDE

Strconstant NUM_REGEX = "([+-]?(?:(?:\\d+\\.\\d+)|(?:\\d+\\.?)|(?:\\.\\d+))(?:[Ee][+-]?\\d+)?)"

Function isNaN(var)
    Variable var
    if (numtype(var) == 2)
        return 1
    endif
    return 0
End

Function/S Num_complexToString(cmplx_num)
    Variable/C cmplx_num

    String num_out
    sprintf num_out, "%.16g + %.16gi", real(cmplx_num), imag(cmplx_num)
    return num_out
End

Function Num_getUnitMagnitude(num)
    // Return the order of magnitude for the given number
    //
    // Only returns multiples of 3 (as commonly used in SI units
    // prefixes), and returns a max (min) magnitude of 24 (-24).
    Variable num

    Variable exponent = floor(log(num))
    if (exponent > 24)
        exponent = 24
    endif
    if (exponent < -24)
        exponent = -24
    endif
    Variable diff = mod(exponent, -3)
    Variable map_key = exponent - diff
    // for negative integers, push to next prefix
    if (exponent < -3 && diff != 0)
        map_key -= 3
    endif
    return map_key
End

Static Constant kTOLd = 1e-13          // double precision tolerance
Function Nums_areEqual(numA, numB, [tol])
	Variable numA, numB
	Variable tol

    if (ParamIsDefault(tol))
        tol = kTOLd
    endif

	Variable typeA = numtype(numA)
	Variable typeB = numtype(numB)
	if (typeA != typeB)
		return FALSE
	else
		if (typeA == 1)    // both values are either +/-Inf
			return (numA == numB)
		elseif (typeA == 2) // both values are NaN
			return TRUE
		else                    // compare values, within tolerance
			return (abs(numA - numB) <= tol)
		endif
	endif
End

#endif

Real programs from Software Heritage

No SWH evidence indexed yet for this language. (Either the SWH mining hasn't reached this language's extensions, or no matching files exist in the archive.)

Contribute — propose a file extension

Tell us where to find evidence about Igor Pro (mapped to pl/igor-pro). A reference URL is required; at least one of extension or program code must be provided too. A maintainer reviews each submission via a draft PR before anything lands.
Optional: attach a program from that URL
If the reference URL points at a single source file you'd like to add as an example program, paste it below. The workflow will write it under languages/Igor Pro/programs/<sha>/. Keep under ~200 lines.
(or open the pre-filled issue directly)
← IGNORED IHaskell →