mustBeNonpositive — Validate that numeric values are nonpositive.
mustBeNonpositive is available as a callable MATLAB argument validator. It returns no user-facing value when validation passes and throws a structured RunMat error when validation fails. Validators with literal/static payloads are also encoded in MATLAB arguments blocks; dynamic validator payload expressions should call the validator directly until runtime-evaluated arguments-block payloads are implemented. Integer inputs are validated or rejected from their exact class and values. Resident metadata is validated before any provider access, automatic residency remains transparent, and unsupported explicit gpuArray forms are compatibility-gated before download.
Syntax
mustBe*(A, ...)Inputs
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
A | Any | Yes | — | Value to validate. |
B | Any | Variadic | — | Additional validator-specific argument. |
Errors
| Identifier | When | Message |
|---|---|---|
RunMat:validators:ValidationFailed | A value does not satisfy the requested validator. | argument validation failed |
RunMat:validators:InvalidArgument | A validator receives an unsupported argument count or argument type. | invalid argument validation input |
RunMat:validators:ProviderOwnershipMismatch | A resident value has no exact owning provider. | argument validation: no acceleration provider owns the input |
RunMat:validators:ProviderPayloadMismatch | A resident value carries contradictory physical class metadata. | argument validation: resident input has contradictory physical class metadata |
How mustBeNonpositive works
- Callable validator forms enforce exact supported arity, throw on validation failure, and suppress automatic output on success.
- Arguments-block validation uses the same shared runtime predicates for validators that RunMat can encode statically.
- Numeric validators check every element without materializing a cloned numeric array, including sparse stored values and implicit sparse zeros where relevant.
- Text validators accept string scalars/arrays, character row vectors, and compatible cell arrays of text where MATLAB commonly permits them.
- All eight integer classes are classified from authoritative storage; exact ordering, range, membership, sign, zero, finiteness, and missingness checks never reconstruct wide values from binary64.
- Resident validation verifies owner, physical storage, precision, logical/integer class, and wrapper provenance before using metadata or downloading exact content.
- Automatic residency remains transparent; explicit gpuArray input is accepted only for documented forms or a declared RunMat-only extension.
Does RunMat run mustBeNonpositive on the GPU?
Validation does not use the generic message-based gather retry path. Integrity and compatibility failures are terminal; admitted content checks download typed storage deliberately through the exact owning provider.
GPU memory and residency
Metadata-decidable validators avoid download. Content-dependent validators use a non-destructive exact-owner download and leave the source handle, class, payload, and provenance unchanged.
Example
Using the validator as a normal callable guard
mustBeNonpositive(A)Expected output:
No output when validation passes; an error is thrown when validation fails.Using mustBeNonpositive with coding agents
Open a RunMat example with live inputs, then ask the agent to explain how mustBeNonpositive changes the result.
Run a small mustBeNonpositive example, explain the result, then change one input and compare the output.
FAQ
Does this validator work in an arguments block?⌄
Yes for literal/static validator payloads that RunMat can encode at compile time. Dynamic validator payload expressions should use the callable form for now.
Related Argument Validation functions
isvarname · mustBeA · mustBeColumn · mustBeFile · mustBeFinite · mustBeFloat · mustBeFolder · mustBeGreaterThan · mustBeGreaterThanOrEqual · mustBeInRange · mustBeInteger · mustBeLessThan · mustBeLessThanOrEqual · mustBeMember · mustBeNegative · mustBeNonempty · mustBeNonmissing · mustBeNonNan · mustBeNonnegative · mustBeNonsparse · mustBeNonzero · mustBeNonzeroLengthText · mustBeNumeric · mustBeNumericOrLogical · mustBePositive · mustBeReal · mustBeScalarOrEmpty · mustBeSparse · mustBeText · mustBeTextScalar · mustBeUnderlyingType · mustBeValidVariableName · mustBeVector · namedargs2cell · validateFunctionSignaturesJSON
About RunMat
RunMat is an open-source runtime that executes MATLAB-syntax code blazing on any GPU. It is licensed under the Apache 2.0 license.
- RunMat automatically optimizes your math for GPU execution on Apple, Nvidia, and AMD hardware. No code changes needed. Simulations that took hours now take minutes.
- Start running code in seconds. RunMat runs in the browser, on the desktop, or from the CLI. No license server, no IT ticket.