Polybench® for biosignals / reference 1.34.1
Describes the rules for the '*~' and '!*~' signs.

Begins with similar (*~), or does not begin with similar (!*~)

Overview

Use the symbol
 *~ 
to notate the inequality 'begins with similar', or
 !*~ 
to notate the inequality 'does not begin with similar', where the comparison between expressions is case insensitive.

For example:

ABC *~ a AND ABC !*~ c

means:

ABC begins with a part similar to a and ABC does not begin with a part similar to c

Details

The expressions a and b in the inequality a *~ b, or a !*~ b should be substituted by any of the following:
- a fixed text string, for example hypertension
- a fixed numerical value, for example 12.3, also valid is 12,3
- a global variable, for example $hour$
- any other variable or variable parameter, for example $Design.Constant 1.Value$, or $LastName$.

Variables are substituted by their current values at the time the inequality is processed. Spaces around the expressions are trimmed automatically.

The way the inequality is solved depends on the type of its expressions:

Both expressions are numbers
Because there is no numerical representation of 'begins with', the inequality is always handled as text.

Both expressions are textual
If a text string is to be compared to another text string, then comparison is case insensitive.
For example:
Hello *~ HEL evaluates to TRUE, because the first expression begins with the second (irrespective of letter case)
$var$ !*~ good evaluates to FALSE in case the variable $var$ has been set to "GOOD MORNING".

One of both expressions is textual, the other is a number
If one of both expressions is a text, then the other expression is also handled like text.