Julio César Vásquez vs. Pernell Whitaker

Julio César Vásquez vs. Pernell Whitaker, billed as "Showdown of Champions" was a professional boxing match contested on March 4, 1995 for the WBA super welterweight title.

Showdown of Champions
DateMarch 4, 1995
VenueConvention Hall in Atlantic City, New Jersey
Title(s) on the lineWBA Super Welterweight Title
Tale of the tape
Boxer Julio César Vásquez Pernell Whitaker
Nickname "El Zurdo" "Sweet Pea"
Hometown Santa Fe, Argentina Norfolk, Virginia, U.S.
Purse $500,000 $1,500,000
Pre-fight record 53–1 34–1–1
Height 5 ft 8 in (173 cm) 5 ft 6 in (168 cm)
Weight 154 lb (70 kg) 154 lb (70 kg)
Style Southpaw Southpaw
Recognition WBA
Super Welterweight champion
WBC/lineal
Welterweight Champion
Result
Whitaker defeats Vásquez by unanimous decision (118–107, 118–110, 116–110)

Background

In February 1995, reigning WBC welterweight champion Pernell Whitaker officially announced that he would moving up in weight to challenge Julio César Vásquez for the latter's WBA super welterweight title.[1] Whitaker was seeking to become the fourth man in boxing history to win a world title in four different divisions joining only Sugar Ray Leonard, Thomas Hearns and Roberto Durán.[2] Vásquez had reigned as super welterweight champion for over two years and had made 10 successful title defenses , but was virtually unknown to American audiences and had never been on as big a stage as he would be for his fight with Whitaker, something Whitaker claimed would be a detriment for him. Whitaker's time in the super welterweight division was expected to last only this fight, as he announced his intentions to go back down to welterweight should he win.[3] Prior to the bout, Whitaker's long-time trainer George Benton had departed following a dispute with Lou Duva, whom both managed and co-trained Whitaker under his company Main Events. Benton'split from Main Event was acrimonious, claiming that Duva "didn't know boxing" and Whitaker was "arrogant and stubborn." To fill the void left by Benton, Ronnie Shields took over as Whitaker's head trainer.[4]

The fight

Whitaker would have little trouble with Vásquez, winning by an easy unanimous decision. However, for the second consecutive fight, Whitaker was knocked down by his opponent. Vásquez would score the knockdown after Whitaker showboated by dropping his hands and was caught off balance with a left hand from Vásquez, though he would recover. As the fight went on, a frustrated Vásquez was warned numerous times for holding and hitting and was deducted one point in each of the ninth and 11th rounds. When fight ended and went to the scorecards, Whitaker won clearly on all three with scores of 118–107, 118–110 and 116–110.[5]

Fight card

Weight Class Weight vs. Method Round Notes
Super Welterweight 154 lb Pernell Whitaker def. Julio César Vásquez (c) UD 12/12 Note 1
Welterweight 147 lb Ike Quartey def. Jung-Oh Park TKO 4/12 Note 2
Welterweight 147 lb Gary Jacobs def. José Miguel Fernández UD 10/10
Heavyweight 200+ lb David Tua def. Bruce Bellocchi TKO 1/10
Lightweight 135 lb Julien Lorcy def. Tommy Barnes TKO 1/8
Super Welterweight 154 lb Aníbal Santiago Acevedo def. Vidal Rodriguez KO 5/8
Heavyweight 200+ lb David Izon def. Ali Allen KO 2/6

^Note 1 For WBA Super Welterweight title
^Note 2 For WBA Welterweight title

gollark: So, I finished that to highly dubious demand. I'd like to know how #11 and such work.
gollark: > `x = _(int(0, e), int(e, е))`You may note that this would produce slices of 0 size. However, one of the `e`s is a homoglyph; it contains `2 * e`.`return Result[0][0], x, m@set({int(e, 0), int(е, e)}), w`From this, it's fairly obvious what `strassen` *really* does - partition `m1` into 4 block matrices of half (rounded up to the nearest power of 2) size.> `E = typing(lookup[2])`I forgot what this is meant to contain. It probably isn't important.> `def exponentiate(m1, m2):`This is the actual multiplication bit.> `if m1.n == 1: return Mаtrix([[m1.bigData[0] * m2.bigData[0]]])`Recursion base case. 1-sized matrices are merely multiplied scalarly.> `aa, ab, ac, ad = strassen(m1)`> `аa, аb, аc, аd = strassen(m2)`More use of homoglyph confusion here. The matrices are quartered.> `m = m1.subtract(exponentiate(aa, аa) ** exponentiate(ab, аc), exponentiate(aa, аb) ** exponentiate(ab, аd), exponentiate(ac, аa) ** exponentiate(ad, аc), exponentiate(ac, аb) ** exponentiate(ad, аd)) @ [-0j, int.abs(m2.n * 3, m1.n)]`This does matrix multiplication in an inefficient *recursive* way; the Strassen algorithm could save one of eight multiplications here, which is more efficient (on big matrices). It also removes the zero padding.> `m = exponentiate(Mаtrix(m1), Mаtrix(m2)) @ (0j * math.sin(math.asin(math.sin(math.asin(math.sin(math.e))))), int(len(m1), len(m1)))`This multiples them and I think also removes the zero padding again, as we want it to be really very removed.> `i += 1`This was added as a counter used to ensure that it was usably performant during development.> `math.factorial = math.sinh`Unfortunately, Python's factorial function has really rather restrictive size limits.> `for row in range(m.n):`This converts back into the 2D array format.> `for performance in sorted(dir(gc)): getattr(gc, performance)()`Do random fun things to the GC.
gollark: > `globals()[Row + Row] = random.randint(*sys.version_info[:2])`Never actually got used anywhere.> `ε = sys.float_info.epsilon`Also not used. I just like epsilons.> `def __exit__(self, _, _________, _______):`This is also empty, because cleaning up the `_` global would be silly. It'll be overwritten anyway. This does serve a purpose, however, and not just in making it usable as a context manager. This actually swallows all errors, which is used in some places.> `def __pow__(self, m2):`As ever, this is not actual exponentiation. `for i, (ι, 𐌉) in enumerate(zip(self.bigData, m2.bigData)): e.bigData[i] = ι + 𐌉` is in fact just plain and simple addition of two matrices.> `def subtract(forth, 𝕒, polynomial, c, vector_space):`This just merges 4 submatrices back into one matrix.> `with out as out, out, forth:`Apart from capturing the exceptions, this doesn't really do much either. The `_` provided by the context manager is not used.> `_(0j, int(0, 𝕒.n))`Yes, it's used in this line. However, this doesn't actually have any effect whatsoever on the execution of this. So I ignore it. It was merely a distraction.> `with Mаtrix(ℤ(ℤ(4))):`It is used again to swallow exceptions. After this is just some fluff again.> `def strassen(m, x= 3.1415935258989):`This is an interesting part. Despite being called `strassen`, it does not actually implement the Strassen algorithm, which is a somewhat more efficient way to multiply matrices than the naive way used in - as far as I can tell - every entry.> `e = 2 ** (math.ceil(math.log2(m.n)) - 1)`This gets the next power of two in a fairly obvious way. It is used to pad out the matrix to the next power of 2 size.> `with m:`The context manager is used again for nicer lookups.> `Result[0] += [_(0j, int(e, e))]`Weird pythonoquirkiness again. You can append to lists in tuples with `+=`, but it throws an exception as they're sort of immutable.> `typing(lookup[4])(input())`It's entirely possible that this does things.
gollark: > `def __eq__(self, xy): return self.bigData[math.floor(xy.real * self.n + xy.imag)]`This actually gets indices into the matrix. I named it badly for accursedness. It uses complex number coordinates.> `def __matmul__(self, ǫ):`*This* function gets a 2D "slice" of the matrix between the specified coordinates. > `for (fοr, k), (b, р), (whіle, namedtuple) in itertools.product(I(*int.ℝ(start, end)), enumerate(range(ℤ(start.imag), math.floor(end.imag))), (ǫ, ǫ)):`This is really just bizarre obfuscation for the basic "go through every X/Y in the slice" thing.> `out[b * 1j + fοr] = 0`In case the matrix is too big, just pad it with zeros.> `except ZeroDivisionError:`In case of zero divisions, which cannot actually *happen*, we replace 0 with 1 except this doesn't actually work.> `import hashlib`As ever, we need hashlib.> `memmove(id(0), id(1), 27)`It *particularly* doesn't work because we never imported this name.> `def __setitem__(octonion, self, v):`This sets either slices or single items of the matrix. I would have made it use a cool™️ operator, but this has three parameters, unlike the other ones. It's possible that I could have created a temporary "thing setting handle" or something like that and used two operators, but I didn't.> `octonion[sedenion(malloc, entry, 20290, 15356, 44155, 30815, 37242, 61770, 64291, 20834, 47111, 326, 11094, 37556, 28513, 11322)] = v == int(bool, b)`Set each element in the slice. The sharp-eyed may wonder where `sedenion` comes from.> `"""`> `for testing`> `def __repr__(m):`This was genuinely for testing, although the implementation here was more advanced.> `def __enter__(The_Matrix: 2):`This allows use of `Matrix` objects as context managers.> `globals()[f"""_"""] = lambda h, Ĥ: The_Matrix@(h,Ĥ)`This puts the matrix slicing thing into a convenient function accessible globally (as long as the context manager is running). This is used a bit below.
gollark: * desired

References

  1. Whitaker Expects to Fight and Have Fun, NY Times article, 1995-02-23, Retrieved on 2020-04-17
  2. Sweet Pea Wins Crown, Daily Press article, 1995-03-05, Retrieved on 2020-04-17
  3. Whitaker Says Bright Lights Will Hurt Bigger Opponent, NY Times article, 1995-03-04, Retrieved on 2020-04-16
  4. Whitaker to Unveil New Showboating Plan, Daily Press article, 1995-03-05, Retrieved on 2020-04-17
  5. Whitaker Beats Vasquez for Junior Middleweight Title, NY Times article, 1995-03-05, Retrieved on 2020-04-18
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.