# Page Comparison

## Key

• This line was removed.
• Formatting was changed.

This is for

Jira Legacy
server System JIRA 50130123-f232-3df4-bccb-c16e7d83cd3e RHOL-533

...

The algorithm is (men ~ patterns, women ~ terms):

```    while ∃ free man m who still has a woman w to propose to {
w = first woman on m’s list to whom m has not yet proposed
if w is free
(m, w) become engaged
else some pair (m', w) already exists
if w prefers m to m'
m' becomes free
(m, w) become engaged
else
(m', w) remain engaged
```

This assumes that there are M patterns and N terms and that M = N.
If M < N, there will not be a match unless there is a wildcard or a remainder (see their sections below) and we should short-circuit unless there is one.

...

Is basically for free. We just run the algorithm for M (#patterns) <= N (#terms) and declare the result a match iff all patterns have a term assigned and there's at least one wildcard in the pattern list. E.g.

Code Block
`{ 1 | 2 | 3 } matches { 2 | _ | 1 | _ }`

is matching N = 3 terms to a pattern list of M = 2 patterns and K = 2 wildcards, and the match will be successful.

...