2019 Tianjin Open – Singles

Caroline Garcia was the defending champion, but lost in the second round to Wang Yafan. [1]

Singles
2019 Tianjin Open
Champion Rebecca Peterson
Runner-up Heather Watson
Final score6–4, 6–4

Rebecca Peterson won the title, defeating Heather Watson in the final, 6–4, 6–4.

Seeds

  1. Sofia Kenin (Withdrew)
  2. Wang Qiang (Second round)
  3. Dayana Yastremska (Quarterfinals)
  4. Caroline Garcia (Second round)
  5. Zhang Shuai (Withdrew)
  6. Yulia Putintseva (Quarterfinals)
  7. Zheng Saisai (Second round, retired)
  8. Magda Linette (Quarterfinals)

Draw

Key

Finals

Semifinals Final
          
  Ons Jabeur 6 4 5
  Rebecca Peterson 0 6 7
  Rebecca Peterson 6 6
  Heather Watson 4 4
  Veronika Kudermetova 1 4
  Heather Watson 6 6

Top half

First Round Second Round Quarterfinals Semifinals
Q Xiy Wang 6 77
  K Ahn 2 62 Q Xiy Wang 4 2
  O Jabeur 6 6   O Jabeur 6 6
  J Brady 4 2   O Jabeur 77 77
WC S Stosur 7 2 6 6 Y Putintseva 65 64
WC Z Yang 5 6 2 WC S Stosur 1 2
  A Sharma 1 6 5 6 Y Putintseva 6 6
6 Y Putintseva 6 1 7   O Jabeur 6 4 5
4 C Garcia 2 6 6   R Peterson 0 6 7
  A Potapova 6 2 2 4 C Garcia 4 2
  Y Wang 6 6   Y Wang 6 6
  L Davis 0 4   Y Wang 77 4 2
  V Williams 3 6 3   R Peterson 65 6 6
  R Peterson 6 4 6   R Peterson 7 3
LL Xin Wang 6 6 LL Xin Wang 5 2r
LL S Ma 3 1

Bottom half

First Round Second Round Quarterfinals Semifinals
7 S Zheng 77 6
WC Y Duan 64 2 7 S Zheng 0r
V Kudermetova 6 6 V Kudermetova 5
A Tomljanović 4 2 V Kudermetova 6 6
S Peng 6 77 3 D Yastremska 4 0
Q X You 2 61 S Peng 2 4
L Zhu 2 3 3 D Yastremska 6 6
3 D Yastremska 6 6 V Kudermetova 1 4
8 M Linette 6 6 H Watson 6 6
C McHale 3 1 8 M Linette 4
Q K Nara 3 6 6 Q K Nara 0r
H Dart 6 1 3 8 M Linette 5 77 66
H Watson 6 77 H Watson 7 64 78
PR K Bondarenko 4 63 H Watson 6 6
Q Ar Rodionova 3 4 2 Q Wang 3 0
2 Q Wang 6 6

Qualifying

Seeds

  1. Nao Hibino (Second round)
  2. Han Xinyun (Withdrew)
  3. Yanina Wickmayer (Second round)
  4. Wang Xiyu (Qualified)
  5. Wang Xinyu (Qualifying competition, Lucky loser)
  6. Kurumi Nara (Qualified)
  7. Natalija Kostić (Second round)
  8. Liang En-shuo (Second round, retired)

Qualifiers

Lucky Losers

Draw

First Qualifier

First Round Second Round Qualifying Competition
               
1 Nao Hibino 6 6
  Liu Fangzhou 2 3
1 Nao Hibino 6 3 5
  Arina Rodionova 3 6 7
  Haruka Kaji 6 1 2
  Arina Rodionova 3 6 6
  Arina Rodionova 62 6 6
  Zhang Yuxuan 77 1 4
  Guo Hanyu 2 5
  Zhang Yuxuan 6 7
  Zhang Yuxuan 6 4
8 Liang En-shuo 2 2r
  Ayano Shimizu 6 2 2
8 Liang En-shuo 3 6 6

Second Qualifier

First Round Second Round Qualifying Competition
               
Alt Darija Jurak 3 0
  Ma Shuyue 6 6
  Ma Shuyue 1 6 7
  Zheng Qinwen 6 2 5
WC Tang Qianhui 4 3
  Zheng Qinwen 6 6
  Ma Shuyue 67 3
6 Kurumi Nara 79 6
  Nicole Melichar 6 3 6
  Jovana Jakšić 1 6 3
Nicole Melichar 4 4
6 Kurumi Nara 6 6
  Wang Meiling 0 2
6 Kurumi Nara 6 6

Third Qualifier

First Round Second Round Qualifying Competition
               
3 Yanina Wickmayer 6 6
  Sofia Shapatava 1 1
3 Yanina Wickmayer 63 4
  You Xiaodi 77 6
  Xu Shilin 0 1
  You Xiaodi 6 6
  You Xiaodi 6 77
  Xun Fangying 2 65
  Xun Fangying 77 6
WC Jiang Xinyu 63 1
  Xun Fangying 7 6
7 Natalija Kostić 5 4
  Yuan Yue 3 6 3
7 Natalija Kostić 6 3 6

Fourth Qualifier

First Round Second Round Qualifying Competition
               
4 Wang Xiyu 77 7
  Sun Ziyue 65 5
4 Wang Xiyu 6 6
  Yang Yidi 2 0
  Emily Webley-Smith 4 6 3
  Yang Yidi 6 4 6
4 Wang Xiyu 6 6
5 Wang Xinyu 3 2
  Gao Xinyu 6 6
WC Bai Zhuoxuan 3 1
  Gao Xinyu 3 4
5 Wang Xinyu 6 6
  Gabriela Dabrowski 2 4
5 Wang Xinyu 6 6
gollark: Esobot... hurry up.
gollark: <@435756251205468160> esowiki WHY
gollark: It was to prove to <@!341618941317349376> that COMPILED DOES NOT MEAN FAST.
gollark: Yep!
gollark: Execute THIS!```pythonimport argparseimport subprocessparser = argparse.ArgumentParser(description="Compile a WHY program")parser.add_argument("input", help="File containing WHY source code")parser.add_argument("-o", "--output", help="Filename of the output executable to make", default="./a.why")parser.add_argument("-O", "--optimize", help="Optimization level", type=int, default="0")args = parser.parse_args()def build_C(args): template = """#define QUITELONG long long intconst QUITELONG max = @max@;int main() { QUITELONG i = 0; while (i < max) { i++; } @code@} """ for k, v in args.items(): template = template.replace(f"@{k}@", str(v)) return templateinput = args.inputoutput = args.outputtemp = "ignore-this-please"with open(input, "r") as f: contents = f.read() looplen = max(1000, (2 ** -args.optimize) * 1000000000) code = build_C({ "code": contents, "max": looplen }) with open(temp, "w") as out: out.write(code)subprocess.run(["gcc", "-x", "c", "-o", output, temp])```

References

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