2018 Oracle Challenger Series – Houston – Men's Singles

Bradley Klahn won the title after defeating Roy Smith 7–6(7–4), 7–6(7–4) in the final.

Houston – Men's Singles
2018 Oracle Challenger Series – Houston
Champion Bradley Klahn
Runner-up Roy Smith
Final score7–6(7–4), 7–6(7–4)

This was the first edition of the tournament.

Seeds

  1. Tennys Sandgren (First round)
  2. Bradley Klahn (Champion)
  3. Ivo Karlović (Quarterfinals)
  4. Paolo Lorenzi (Second round)
  5. Jason Jung (Quarterfinals)
  6. Bjorn Fratangelo (First round, retired)
  7. Tim Smyczek (First round)
  8. Dominik Köpfer (Semifinals)

Draw

Key

Finals

Semifinals Final
          
Kamil Majchrzak 4 3r
WC Roy Smith 6 2
WC Roy Smith 64 64
2 Bradley Klahn 77 77
8 Dominik Köpfer 3 4
2 Bradley Klahn 6 6

Top half

First Round Second Round Quarterfinals Semifinals
1 T Sandgren 2 5
K Majchrzak 6 7 K Majchrzak 6 4 6
WC Sumit Sarkar 61 1 R Ortega Olmedo 3 6 3
R Ortega Olmedo 77 6 K Majchrzak 77 62 6
E Couacaud 6 6 5 J Jung 65 77 3
WC R Schneider 4 3 E Couacaud 1 63
R Cid Subervi 1 1 5 J Jung 6 77
5 J Jung 6 6 K Majchrzak 4 3r
4 P Lorenzi 6 3 6 WC R Smith 6 2
S Kozlov 4 6 4 4 P Lorenzi 4 4
T-S Kwiatkowski 78 4 6 T-S Kwiatkowski 6 6
M Krueger 66 6 4 T-S Kwiatkowski 6 65 61
D King 3 6 64 WC R Smith 4 77 77
WC Roy Smith 6 3 77 WC R Smith 6 6
Q Harrison Adams 6 7 Q H Adams 3 4
7 T Smyczek 3 5

Bottom half

First Round Second Round Quarterfinals Semifinals
8 D Köpfer 77 3 6
M Arévalo 64 6 4 8 D Köpfer 6 7
Q J Lenz 6 3 66 E Escobedo 1 5
E Escobedo 4 6 78 8 D Köpfer 6 6
E Gómez 6 6 3 I Karlović 1 4
DE Galán 1 4 E Gómez 61 3
M Giron 4 2 3 I Karlović 77 6
3 I Karlović 6 6 8 D Köpfer 3 4
6 B Fratangelo 3 0r 2 B Klahn 6 6
Evan Song 6 0 E Song 6 3 6
Q Alexis Galarneau 6 6 Q A Galarneau 2 6 2
WC T Fawcett 3 2 E Song 3 6 1
Q Mi Redlicki 6 1 6 2 B Klahn 6 4 6
J Hernández-Fernández 4 6 4 Q Mi Redlicki 4 4
A Sarkissian 1 2 2 B Klahn 6 6
2 B Klahn 6 6
gollark: ```nimproc pollTargets(ctx: Ctx) {.async.} = for row in ctx.db.all("SELECT * FROM sites"): var (id, url, rollingTotalPings, rollingSuccessfulPings, rollingLatency, rollingDataSince) = row.unpack((int64, string, int64, int64, int64, Option[Time])) let res = await ctx.pollTarget(url) let threshold = getTime() # drop old data from rolling counters if rollingDataSince.isSome: for row in ctx.db.iterate("SELECT status, latency FROM reqs WHERE timestamp >= ? AND timestamp <= ? AND site = ?", rollingDataSince.get, threshold, id): let (statusRaw, latency) = row.unpack((int, int)) rollingTotalPings -= 1 rollingLatency -= latency if statusRaw <= 0: rollingSuccessfulPings -= 1 # add new data rollingTotalPings += 1 rollingLatency += res.latency if int(res.rtype) <= 0: rollingSuccessfulPings += 1 ctx.db.transaction: ctx.db.exec("UPDATE sites SET rc_total = ?, rc_success = ?, rc_latency = ?, rc_data_since = ? WHERE sid = ?", rollingTotalPings, rollingSuccessfulPings, rollingLatency, threshold, id) ctx.db.exec("INSERT INTO reqs (site, timestamp, status, latency) VALUES (?, ?, ?, ?)", id, getTime(), int(res.rtype), res.latency)```This is the core algorithm.
gollark: Actually, æææææ who even knows.
gollark: The boundary conditions could be wrong on this query.
gollark: Hmm. I think I might know what this is maybe?
gollark: I think that might just have been a bug I introduced by accident.

References

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.