File tree Expand file tree Collapse file tree 3 files changed +19
-2
lines changed Expand file tree Collapse file tree 3 files changed +19
-2
lines changed Original file line number Diff line number Diff line change 162162 (for ([var (in-list vars)])
163163 (match var
164164 [(? identifier? x) (sow var)]
165+ ;; FPCore syntax for 1D arrays
166+ [#`(#,(? identifier? x) 2 ) (sow x)]
165167 [#`(! #,props ... #,name)
166168 (check-properties* props (immutable-bound-id-set '() ) error!)
167169 (cond
168170 [(identifier? name) (sow name)]
169- [else (error! var "Annotated argument ~a is not a variable name " name)])])))))
171+ [else (error! var "Annotated argument ~a is not a variable name " name)])]
172+ [_ (error! var "Invalid syntax ~a for variable name " var)])))))
170173 (when (check-duplicate-identifier vars*)
171174 (error! stx "Duplicate argument name ~a " (check-duplicate-identifier vars*)))
172175 (check-properties* props (immutable-bound-id-set vars*) error!)
Original file line number Diff line number Diff line change 2828 (define prop-dict (props->dict props))
2929 (define arg-prec (dict-ref prop-dict ':precision prec))
3030 (values name arg-prec)]
31- [(? symbol? name) (values name prec)])))
31+ [(? symbol? name) (values name prec)]
32+ [(list var 2 ) (values var '(real 2 ))])))
3233
3334 (define ctx (context var-names (get-representation prec) (map get-representation var-precs)))
3435 (assert-expression-type! body prop-dict ctx))
Original file line number Diff line number Diff line change 1111 <bool>
1212 <binary32>
1313 <binary64>
14+ <binary64x2>
1415 (struct-out context)
1516 *context*
1617 context-extend
113114 #:total-bits 64
114115 #:special-value? nan?))
115116
117+ (define <binary64x2>
118+ (representation 'binary64x2
119+ '(real 2 )
120+ (curry vector-map bigfloat->flonum)
121+ (lambda (x)
122+ (parameterize ([bf-precision 53 ])
123+ (vector-map bf x)))
124+ (curry vector-map ordinal->flonum)
125+ (curry vector-map flonum->ordinal)
126+ '(64 2 )
127+ (lambda (v) (ormap identity (vector->list v)))))
128+
116129;; Contexts
117130
118131(struct context (vars repr var-reprs) #:transparent )
You can’t perform that action at this time.
0 commit comments