func (x *Imp) Defined(s string) bool { // x.Clr() n := uint(len(s)) if n < 7 { return false } if s[0] != '(' || s[n-1] != ')' { return false } t := str.Part(s, 1, n-2) + "," var p uint for d := D0; d < NDirs; d++ { if !str.Contains(t, ',', &p) { return false } r, err := strconv.ParseFloat(t[:p], 64) if err == nil { x.x[d] = r } else { return false } str.Rem(&t, 0, p+1) } return true }
func (x *Imp) Defined(s string) bool { // x.Clr() if str.Empty(s) { return true } str.Move(&s, true) x.geq0 = s[0] != '-' switch s[0] { case '+', '-': str.Rem(&s, 0, 1) } n := str.ProperLen(s) var p uint if str.Contains(s, '/', &p) { s1 := str.Part(s, p+1, n-p-1) if nat.Defined(&x.denom, s1) { if x.denom >= max { return false } } else { return false } } else { p = n x.denom = 1 } s1 := str.Part(s, 0, p) if nat.Defined(&x.num, s1) { if x.num >= max { return false } } else { return false } return true }