1 00:00:19,040 --> 00:00:24,580 There have been some fairly incontinent attacks on Lovelace's 2 00:00:24,580 --> 00:00:29,830 reputation and my bottom line is much the same as Doran's. 3 00:00:29,830 --> 00:00:37,410 I wanna present some hard evidence that these incontinent attacks 4 00:00:37,410 --> 00:00:40,370 on a kind of universal plane, I want to present you some concrete, 5 00:00:40,370 --> 00:00:44,270 hard evidence that actually that these attacks are not warranted. 6 00:00:44,270 --> 00:00:48,123 There are people who I read when I first started getting into this, great, 7 00:00:48,123 --> 00:00:49,000 thank you. 8 00:00:49,000 --> 00:00:51,050 Who I read when I first started getting into this and 9 00:00:51,050 --> 00:00:52,710 I really have no right to be here. 10 00:00:52,710 --> 00:00:56,240 I think I was asked in, I can't remember when Ursula asked me. 11 00:00:56,240 --> 00:00:59,290 I think it's only because I was boasting 12 00:00:59,290 --> 00:01:03,570 that it was the 50th anniversary of me writing my first computer program. 13 00:01:03,570 --> 00:01:09,070 And Ursula, in the way that those of you have worked with her will know, 14 00:01:09,070 --> 00:01:14,180 bounced up and down and said, oh you're just the person to convey Ada's excitement 15 00:01:14,180 --> 00:01:19,450 in presenting the details of the analytical engine. 16 00:01:19,450 --> 00:01:23,000 So, maybe I was just the person or maybe I wasn't just the person. 17 00:01:23,000 --> 00:01:27,221 But I went on, what you might call, where's the, here, 18 00:01:27,221 --> 00:01:32,231 have you got a, Thank you. 19 00:01:32,231 --> 00:01:34,695 Does that change it? 20 00:01:34,695 --> 00:01:36,692 >> Yes, it's working. 21 00:01:36,692 --> 00:01:38,851 >> Which is the button? 22 00:01:38,851 --> 00:01:40,152 >> This is the microphone. 23 00:01:40,152 --> 00:01:41,605 >> Oh, this is microphone. 24 00:01:41,605 --> 00:01:42,406 Okay. 25 00:01:42,406 --> 00:01:48,701 [LAUGH] Thank you. 26 00:01:48,701 --> 00:01:49,653 Please. 27 00:01:49,653 --> 00:01:52,114 50 years a programmer, and I still can't press buttons. 28 00:01:52,114 --> 00:01:56,540 >> [LAUGH] >> Thank you. 29 00:01:56,540 --> 00:02:02,190 So, I went on what you might call a programmer's journey of discovery. 30 00:02:02,190 --> 00:02:06,827 So, how many people are programmers sitting here? 31 00:02:06,827 --> 00:02:09,780 Oh, damn there's enough of you. 32 00:02:09,780 --> 00:02:11,160 Right? [LAUGH] Okay so, 33 00:02:11,160 --> 00:02:12,530 you're going to understand. 34 00:02:12,530 --> 00:02:16,820 You may understand more of what I have to say than I might have been 35 00:02:16,820 --> 00:02:17,610 expecting you to. 36 00:02:17,610 --> 00:02:21,190 In which case, I apologize for any of the technical mistakes. 37 00:02:21,190 --> 00:02:28,550 Here, incidentally, is a piece of paper that I wanted to hand out to you. 38 00:02:28,550 --> 00:02:33,380 What you would see on the piece of paper, which is actually reproduced as a fold out 39 00:02:33,380 --> 00:02:37,090 in the inside of the stuff that you got in your goodie bag. 40 00:02:37,090 --> 00:02:41,910 And at some point I'm gonna be referring to it. 41 00:02:41,910 --> 00:02:48,780 This in the end is going to be the object of the study. 42 00:02:48,780 --> 00:02:56,198 This is the table for the computation of the Bernoulli numbers. 43 00:02:56,198 --> 00:03:01,130 So, we're gonna see if we can take the programmer's journey through Ada's paper, 44 00:03:01,130 --> 00:03:06,070 learning as I did, a huge amount about the analytical engine. 45 00:03:06,070 --> 00:03:09,030 I only knew it as reputation. 46 00:03:09,030 --> 00:03:12,160 I only knew what Ada had done in the same way that 47 00:03:12,160 --> 00:03:17,620 probably 90% of you sitting here knew it. 48 00:03:17,620 --> 00:03:23,540 She wrote the first programs, the DOD, name, day, programming language after her. 49 00:03:23,540 --> 00:03:25,350 She was the first computer programmer. 50 00:03:25,350 --> 00:03:30,420 Those of you who are more inclined to be sympathetic to general 51 00:03:30,420 --> 00:03:35,491 notions of heroics and visionaries, will also have digested 52 00:03:35,491 --> 00:03:41,635 what I didn't know until I started reading the general literature on her, 53 00:03:41,635 --> 00:03:46,316 which is that her reputation as a visionary, a pioneer, 54 00:03:46,316 --> 00:03:50,048 the person who essentially did it on her own. 55 00:03:50,048 --> 00:03:53,501 And as I think Torrence pointed out extremely well, 56 00:03:53,501 --> 00:03:55,941 she didn't exactly do it on her own. 57 00:03:55,941 --> 00:04:02,397 But here's some of the stuff that she did that impressed me as a geek, an aged geek, 58 00:04:02,397 --> 00:04:08,230 long term programmer, rooting through essentially the documentation. 59 00:04:08,230 --> 00:04:14,350 And I urge every single one of you, sorry, I urge you all [LAUGH]. 60 00:04:14,350 --> 00:04:18,320 The logicians in the audience will understand the difference between 61 00:04:18,320 --> 00:04:20,120 those two statements. 62 00:04:20,120 --> 00:04:22,320 I urge you all to go read the paper. 63 00:04:22,320 --> 00:04:23,810 There's a huge amount in it. 64 00:04:23,810 --> 00:04:26,270 There is, whoever you are, 65 00:04:26,270 --> 00:04:32,770 there is a thread in this material that you will want to pick up on. 66 00:04:32,770 --> 00:04:37,220 If you are historically minded, one of the threads for 67 00:04:37,220 --> 00:04:41,190 the historically minded Is the way that you'll 68 00:04:41,190 --> 00:04:46,170 find yourself as a historically minded geek getting incredibly impatient with. 69 00:04:46,170 --> 00:04:50,090 While you're all programmers, 70 00:04:50,090 --> 00:04:54,950 I don't know whether the people who 71 00:04:54,950 --> 00:04:59,890 subscribe to the heroics school are gonna take this lying down or not. 72 00:04:59,890 --> 00:05:05,280 There's an overwrought to some of the language in the paper. 73 00:05:05,280 --> 00:05:09,410 One of the things that I found difficult as a geek in getting to grips with what I 74 00:05:09,410 --> 00:05:14,370 had to get to grips with was there's a procession of 75 00:05:14,370 --> 00:05:19,690 facts and then there's a long philosophical disquisition. 76 00:05:19,690 --> 00:05:22,408 Eventually, you get back to the facts. 77 00:05:22,408 --> 00:05:25,266 In other words, Ada writes more or less how I lecture. 78 00:05:25,266 --> 00:05:25,780 So I'm going to. 79 00:05:25,780 --> 00:05:32,630 >> [LAUGH] >> Okay. 80 00:05:32,630 --> 00:05:36,590 So, here's the warning up front which I have not completed. 81 00:05:36,590 --> 00:05:38,980 I'll complete it at the end, roughly speaking what she says is, 82 00:05:38,980 --> 00:05:40,737 you get very excited at the beginning. 83 00:05:40,737 --> 00:05:46,110 When you're considering a new subject, you overrate it like mad. 84 00:05:46,110 --> 00:05:50,831 And then by natural reaction, you undervalue the true state of the case when 85 00:05:50,831 --> 00:05:55,651 we discover there are Tanibal. 86 00:05:55,651 --> 00:06:02,648 Some of the incontinent attacks I think, count as underrating, 87 00:06:02,648 --> 00:06:07,737 and some of the stuff that I'm gonna say today, 88 00:06:07,737 --> 00:06:14,117 I hope will be a sort of partial defense anyway of Lovelace. 89 00:06:14,117 --> 00:06:19,164 Another part of the bottom line, in case I rub it on far too long, 90 00:06:19,164 --> 00:06:22,074 is that [INAUDIBLE] was a programmer. 91 00:06:22,074 --> 00:06:29,400 That this, despite the fact, and of course you can't see the little red marks, 92 00:06:29,400 --> 00:06:36,460 despite the fact that there are errors in the table, works. 93 00:06:36,460 --> 00:06:39,690 It is not a program for producing the Bernoulli numbers. 94 00:06:39,690 --> 00:06:43,890 It is a scheme for a sequence of programs, 95 00:06:43,890 --> 00:06:49,500 each of which will produce the next Bernoulli number, okay? 96 00:06:49,500 --> 00:06:54,564 The reason that it could not be a program is that the machine, 97 00:06:54,564 --> 00:07:00,424 which never existed anyway, it's abstract in more senses than one, 98 00:07:00,424 --> 00:07:07,006 never had a facility for addressing, for calculating, places in the store. 99 00:07:07,006 --> 00:07:09,546 Maurice Wilkes put it best. 100 00:07:09,546 --> 00:07:12,876 Many of you will know who he is, and those of you who don't, it doesn't matter. 101 00:07:12,876 --> 00:07:17,556 Maurice Wilkes put it best, he said The numbers of the columns, the V North, 102 00:07:17,556 --> 00:07:18,646 V1, V2, V3. 103 00:07:18,646 --> 00:07:22,220 Those numbers are just names, right? 104 00:07:22,220 --> 00:07:26,580 Not one, two, etc,, were not addresses that could be calculated. 105 00:07:26,580 --> 00:07:29,320 This is the fundamental limitation of the machine and 106 00:07:29,320 --> 00:07:31,990 it's the fundamental limitation of the program. 107 00:07:31,990 --> 00:07:33,420 We'll get to that in a second. 108 00:07:33,420 --> 00:07:37,720 Let's just so, what are you gonna get if you're a programmer, 109 00:07:37,720 --> 00:07:41,750 which I was, reading the paper over the last few months? 110 00:07:41,750 --> 00:07:48,910 I kind of blurred snapshot of developing idea of the analytical engine. 111 00:07:48,910 --> 00:07:54,210 You can tell when you're reading that she's not writing about quite the same 112 00:07:54,210 --> 00:08:02,970 machine that Manabrias paper describes and there's some tension there. 113 00:08:02,970 --> 00:08:06,530 We expect to read things that are in some sense coherent and 114 00:08:06,530 --> 00:08:12,050 consistent 100, however, many 180 years after the fact, I can't do the arithmetic. 115 00:08:12,050 --> 00:08:16,050 Somebody do the arithmetic, 180 years after the fact nearly 200 years 116 00:08:16,050 --> 00:08:20,210 after the fact, that's good enough, isn't it. 117 00:08:20,210 --> 00:08:24,240 We're now used to seeing things very focused and 118 00:08:24,240 --> 00:08:29,100 when someone writes a paper or presents a paper, you're expecting to 119 00:08:29,100 --> 00:08:31,860 see consistency between the beginning of the paper and the end. 120 00:08:31,860 --> 00:08:36,430 And you're very uncomfortable, especially as a programmer geek like me, when you see 121 00:08:36,430 --> 00:08:40,270 something at the beginning that's not quite the same assuming at the end. 122 00:08:40,270 --> 00:08:43,287 And you have to learn to live with this and I haven't quite which is one of 123 00:08:43,287 --> 00:08:48,175 the reasons for my over excitement at the moment. 124 00:08:48,175 --> 00:08:52,790 You'll see several related notations for programming calculations in the engine. 125 00:08:52,790 --> 00:08:55,370 Calculations for the engine. 126 00:08:55,370 --> 00:08:59,820 And if you'll forgive me I'm gonna continue to call them calculations, 127 00:08:59,820 --> 00:09:04,780 because until we get to the punchline you'll see that that's 128 00:09:04,780 --> 00:09:09,290 what they actually are, I mean, straight line calculations rather than algorithms. 129 00:09:09,290 --> 00:09:13,440 There are suggestions of algorithms, but what's in the tables 130 00:09:13,440 --> 00:09:18,330 are straight line calculations, something you could do on a programmer with 131 00:09:18,330 --> 00:09:23,068 Hewlett Packard calculator which didn't have loops or branching. 132 00:09:23,068 --> 00:09:28,290 so and you're gonna see, 133 00:09:28,290 --> 00:09:33,350 as I say, you'll see if you read it, the derivation of an algorithm and 134 00:09:33,350 --> 00:09:36,860 it's near implementation as a program for the engine. 135 00:09:36,860 --> 00:09:40,350 Okay, so here's the context, I think it's important to understand context, 136 00:09:40,350 --> 00:09:48,943 particularly when you do this kind of time travel. 137 00:09:48,943 --> 00:09:52,459 If you talk to people who don't know algorithms and 138 00:09:52,459 --> 00:10:00,780 who don't know algorithmics, they'll tell you Ada wrote the first algorithms. 139 00:10:00,780 --> 00:10:03,540 You know that she didn't. 140 00:10:03,540 --> 00:10:08,905 The first algorithms, probably written by the Greeks or 141 00:10:08,905 --> 00:10:14,729 the Babylonians expressed by the Greeks or the Babylonians. 142 00:10:14,729 --> 00:10:18,719 There were certainly some non trivial algorithms and they'd been studied for 143 00:10:18,719 --> 00:10:20,604 a long time by the time of the Greeks. 144 00:10:20,604 --> 00:10:25,610 But between the time of the Greeks and at this time mathematicians 145 00:10:25,610 --> 00:10:31,630 really never developed a proper notation for describing dynamic processes. 146 00:10:31,630 --> 00:10:36,780 Roughly, the best you could get was 147 00:10:36,780 --> 00:10:42,490 sort of recurrence relations, and that was fine, but control was always expressed. 148 00:10:42,490 --> 00:10:45,450 In a very informal way when you were describing, 149 00:10:45,450 --> 00:10:49,810 when you were describing our rhythms. 150 00:10:49,810 --> 00:10:54,890 Here's another part of the context, this is a context which I hit first when I 151 00:10:54,890 --> 00:11:01,270 came to study the paper or to read the paper anyway. 152 00:11:01,270 --> 00:11:06,320 So, Allen Bromley was a very distinguished 153 00:11:06,320 --> 00:11:13,017 engineer who studied Babbage's drawings extensively. 154 00:11:13,017 --> 00:11:19,673 Morris Wilkes, arguably designed the first computer that ever produced, 155 00:11:19,673 --> 00:11:26,332 that ever delivered a proper computing service to non-computer experts. 156 00:11:26,332 --> 00:11:31,220 I mean he called it computers, his reputation rests on that. 157 00:11:31,220 --> 00:11:34,910 There are other aspects to his reputation that we can talk about privately. 158 00:11:34,910 --> 00:11:42,880 But his scientific reputation rests on him having developed EDSAC and so on. 159 00:11:42,880 --> 00:11:45,531 Anyway, so this is Allen Bromley, writing to Maurice Wilkes, 160 00:11:45,531 --> 00:11:47,405 when Allen Bromley was already kind of sick. 161 00:11:47,405 --> 00:11:53,002 Although he had done extensive work on Babbage's drawings. 162 00:11:53,002 --> 00:11:57,303 He says, I just worked again through Babbage's notebooks concerning his work on 163 00:11:57,303 --> 00:11:58,750 the engine. 164 00:11:58,750 --> 00:12:01,930 I've been greatly disappointed by what I found. 165 00:12:01,930 --> 00:12:05,500 Through most of the period, the operation cards provided for 166 00:12:05,500 --> 00:12:09,000 only four operations addition, subtraction, multiplication, and division. 167 00:12:09,000 --> 00:12:12,760 Well we know that's enough to do the kind of calculations that we want to do. 168 00:12:12,760 --> 00:12:17,520 What is the only there refers to the fact that 169 00:12:17,520 --> 00:12:22,120 there are no realized mechanisms in the machine for allowing I 170 00:12:22,120 --> 00:12:27,660 use a level program to write conditionals or loops. 171 00:12:27,660 --> 00:12:31,610 That's where his disappointment rested, and it's a curious disappointment. 172 00:12:31,610 --> 00:12:36,070 And it's a curious fact that Babbage, although he could write perfectly well 173 00:12:36,070 --> 00:12:40,960 write what we would now write what we would call microcode which had loops and 174 00:12:40,960 --> 00:12:46,010 so on, indeed, you saw the loops, the barrels going round and round. 175 00:12:46,010 --> 00:12:48,620 That was not offered I think this is fair isn't it, 176 00:12:48,620 --> 00:12:51,840 it's not offered, that is to say Babbage never 177 00:12:51,840 --> 00:12:56,860 developed the machinery to enable this to be offered at the programmers level. 178 00:12:56,860 --> 00:13:02,130 This is Bromlie's disappointment, okay? 179 00:13:02,130 --> 00:13:05,470 There's another physical fact about the machinery that need to [INAUDIBLE] us now, 180 00:13:05,470 --> 00:13:08,700 because it's gonna detain us a little later. 181 00:13:08,700 --> 00:13:14,840 Okay, so Manabrius says, very early on in the translation, 182 00:13:14,840 --> 00:13:19,480 that the machine's not a thinking being. 183 00:13:19,480 --> 00:13:22,032 It's simply an automaton. 184 00:13:22,032 --> 00:13:26,517 Babbage had to work really hard on devising machinery to do 185 00:13:26,517 --> 00:13:28,905 things like division, okay? 186 00:13:28,905 --> 00:13:32,688 What Manabrius is saying is, but you don't have to know how he did it. 187 00:13:32,688 --> 00:13:36,001 If you read a little lower in here, it says, under the impossibility of 188 00:13:36,001 --> 00:13:39,758 my here explaining the process through which this end is attained that is to say, 189 00:13:39,758 --> 00:13:41,460 the full arithmetic. 190 00:13:41,460 --> 00:13:44,850 Done by now, what we would now call microcode. 191 00:13:44,850 --> 00:13:48,330 We must limit ourselves to admitting that the first four operations of arithmetic, 192 00:13:48,330 --> 00:13:49,000 dah, dah, dah, dah, 193 00:13:49,000 --> 00:13:52,600 dah, can be performed in a direct manner through the intervention of the machine. 194 00:13:52,600 --> 00:13:58,120 That's it, here we have the detachment, in Manabrius' paper, 195 00:13:58,120 --> 00:14:02,050 translated appropriately by Lovelace, from the machinery. 196 00:14:02,050 --> 00:14:05,981 This is what makes our discussion a discussion, now, 197 00:14:05,981 --> 00:14:12,055 of an abstract machine, Lovelace says. 198 00:14:12,055 --> 00:14:17,385 Says something similar indeed, she's contrasting Manabrius' 199 00:14:17,385 --> 00:14:22,619 presentation of the abstractions of the machine to an exposition 200 00:14:22,619 --> 00:14:27,377 given by Dionysius Lardner, another scientific writer, 201 00:14:27,377 --> 00:14:33,810 who had written, essentially, an anatomy of the machine. 202 00:14:33,810 --> 00:14:38,218 He described the machine at the physical level in much the same way that 203 00:14:38,218 --> 00:14:43,200 Doran described Babbage's Presentation 204 00:14:43,200 --> 00:14:48,140 of the machine essentially discussing the clinking and clanking of the machinery. 205 00:14:48,140 --> 00:14:52,133 What Lovelace says, is you don't need to understand, you don't need to hear 206 00:14:52,133 --> 00:14:55,401 the clink and clank of the machinery to understand the machine, 207 00:14:55,401 --> 00:14:59,385 to understand what it does, to understand it's function, okay? 208 00:14:59,385 --> 00:15:04,216 [INAUDIBLE] on the contrary exclusively develops, her spelling not mine. 209 00:15:04,216 --> 00:15:06,336 The apolitical view taking it for 210 00:15:06,336 --> 00:15:10,652 granted that the mechanism is able to perform certain processes but 211 00:15:10,652 --> 00:15:15,803 without attempting to explain how every computer scientist teaching your first 212 00:15:15,803 --> 00:15:21,880 programing class That's the kind of thing you want to say to the students, isn't it? 213 00:15:21,880 --> 00:15:25,000 You don't have to understand how the bits and 214 00:15:25,000 --> 00:15:29,220 bytes are arranged, or what the bus does. 215 00:15:29,220 --> 00:15:32,490 You just have to take for granted that this is what it does and we operate 216 00:15:32,490 --> 00:15:36,618 at the level of the abstract machine, we might sometimes say the virtual machine. 217 00:15:36,618 --> 00:15:41,540 Loveless, clearly understood, 218 00:15:41,540 --> 00:15:46,240 so many at door and sadness presentation made me think that she might be 219 00:15:46,240 --> 00:15:51,160 thinking of herself and of garbage when she wrote this. 220 00:15:51,160 --> 00:15:55,310 It is obvious, with the invention of a calculating engine, 221 00:15:55,310 --> 00:16:01,240 these two branches of the subject, I mean mechanism and function 222 00:16:01,240 --> 00:16:05,890 what it is versus what it achieves in the abstract. 223 00:16:05,890 --> 00:16:10,400 Mechanism and function, are equally essential fields of investigation and 224 00:16:10,400 --> 00:16:15,990 beyond their mutual adjustment one to the other must depend all success. 225 00:16:15,990 --> 00:16:18,080 They are indissolubly connected, though so 226 00:16:18,080 --> 00:16:22,700 different in their intrinsic nature that perhaps the same mind 227 00:16:22,700 --> 00:16:27,420 might not be likely to prove equally profound or successful in both. 228 00:16:27,420 --> 00:16:32,330 Now if you want to have a little, metaphysical fantasy here you can think, 229 00:16:32,330 --> 00:16:34,760 she's some, she's thinking of loveless in her. 230 00:16:34,760 --> 00:16:43,954 She does function, he does structure, clicking and clanking. 231 00:16:43,954 --> 00:16:49,680 Okay, so he's getting on to the business now. 232 00:16:49,680 --> 00:16:54,800 This is Menabrea and what he's describing 233 00:16:54,800 --> 00:16:59,810 here is the interesting thing here is if you only read the paper, as I have. 234 00:16:59,810 --> 00:17:03,040 I've never seen any drawings of the analytical engine or anything in fact, yet 235 00:17:03,040 --> 00:17:08,020 the first time I saw the connection between the machinery that was going 236 00:17:08,020 --> 00:17:12,890 to clink and clank and these columns called V1, V2, 237 00:17:12,890 --> 00:17:17,315 V3 etc was when Dorin sent me his slides on Saturday afternoon. 238 00:17:17,315 --> 00:17:24,458 [LAUGH] I thought, of course, but that's what you think, isn't it? 239 00:17:24,458 --> 00:17:28,471 Okay, in general, we have a series of columns consisting of discs which columns 240 00:17:28,471 --> 00:17:31,362 we will designate as [SOUND] we may require, for instance, 241 00:17:31,362 --> 00:17:35,079 to divide the number written on the column V1 by the one on the column V4 and 242 00:17:35,079 --> 00:17:36,930 to obtain the results in column V7. 243 00:17:36,930 --> 00:17:40,488 Well, everybody else that has ever read this paper or read anything about and 244 00:17:40,488 --> 00:17:42,842 read anything by anybody who's read the paper, or 245 00:17:42,842 --> 00:17:46,720 anything by anybody who's read anything by anybody's who's read the paper. 246 00:17:46,720 --> 00:17:51,270 This is the way that knowledge about the paper is transmitted, incidentally. 247 00:17:51,270 --> 00:17:53,990 Few people appear to go back to the paper. 248 00:17:53,990 --> 00:18:00,400 I went back to the paper so you don't have to, but actually I recommend that you do. 249 00:18:00,400 --> 00:18:06,489 You find out, this is interesting. 250 00:18:06,489 --> 00:18:11,168 We're dividing the number written on the column, B one by that in the column obtain 251 00:18:11,168 --> 00:18:15,930 the result in column B seven, it's a three address machine, well sort of, okay. 252 00:18:15,930 --> 00:18:20,500 To effect this operation we must impart on the machine two distinct arrangements. 253 00:18:20,500 --> 00:18:24,230 Through the first it's prepared for executing a division and 254 00:18:24,230 --> 00:18:28,690 through the second of the columns it is to, sorry. 255 00:18:28,690 --> 00:18:32,920 And through the second, the columns it is to operate on are indicated to and 256 00:18:32,920 --> 00:18:36,020 also the column on which the results is to be represented. 257 00:18:36,020 --> 00:18:38,670 That's true to three address machine. 258 00:18:38,670 --> 00:18:41,610 Canoothy even describes it as a three address machine somewhere other in 259 00:18:41,610 --> 00:18:46,010 his description of early algorithmic notation. 260 00:18:46,010 --> 00:18:49,890 One specifies the operation, the other specifies the upper end result columns. 261 00:18:49,890 --> 00:18:54,220 We need not detain us here in understanding how it is, I think, and 262 00:18:54,220 --> 00:19:00,287 you can tell me whether I'm right or wrong, how it is the arrival of the result 263 00:19:00,287 --> 00:19:04,030 address that triggers the mill to do its business. 264 00:19:04,030 --> 00:19:05,950 Maybe that's wrong, Tim? 265 00:19:05,950 --> 00:19:07,890 >> Yeah. 266 00:19:07,890 --> 00:19:08,467 >> Is it right? 267 00:19:08,467 --> 00:19:09,889 >> Depends on which version you look at. 268 00:19:09,889 --> 00:19:14,870 >> Okay. >> [LAUGH] 269 00:19:14,870 --> 00:19:15,610 >> Yeah, we should of 270 00:19:15,610 --> 00:19:16,835 acknowledged Microsoft, 271 00:19:16,835 --> 00:19:22,939 [LAUGH] earlier on they would of said the same thing about his PowerPoint, right? 272 00:19:22,939 --> 00:19:25,130 >> [LAUGH] >> Okay, 273 00:19:25,130 --> 00:19:27,450 the two mechanisms must be distinct. 274 00:19:27,450 --> 00:19:33,380 So here, as someone who's really into the abstract machine, you're 275 00:19:33,380 --> 00:19:37,820 being presented with a concrete detail of the machine, which is a bit disturbing. 276 00:19:37,820 --> 00:19:40,010 What does it mean the two mechanisms must be distinct? 277 00:19:40,010 --> 00:19:45,622 Meaning the mechanism for imparting the operation, setting up the mill, 278 00:19:45,622 --> 00:19:51,144 the mechanism for sending the operand addresses that we would call them or 279 00:19:51,144 --> 00:19:55,972 actually the operand names as Wilks would call them and result. 280 00:19:55,972 --> 00:19:59,846 If this division is to be followed for example by the addition of two numbers 281 00:19:59,846 --> 00:20:03,845 taken on other columns, the two original arrangements of the machine must be 282 00:20:03,845 --> 00:20:07,720 simultaneously altered that is to say the op code and the operand. 283 00:20:07,720 --> 00:20:11,630 If on the contrary, a series of operations of the same nature is to be gone through, 284 00:20:11,630 --> 00:20:14,470 then the first of the original arrangements will remain and 285 00:20:14,470 --> 00:20:16,562 the second alone must be altered. 286 00:20:16,562 --> 00:20:18,259 Okay, so 287 00:20:18,259 --> 00:20:23,440 you've got a series of multiplications, you set up a multiplication, 288 00:20:23,440 --> 00:20:27,110 and then you start screaming the, operands and the results to it. 289 00:20:27,110 --> 00:20:33,280 Or maybe even you maybe only stream the results if the operands are the same and 290 00:20:33,280 --> 00:20:39,090 sending the result to the same place, to different places maybe that [INAUDIBLE]. 291 00:20:39,090 --> 00:20:41,970 As a program you don't want to know this detail, you really don't. 292 00:20:41,970 --> 00:20:45,880 And actually the great achievement of Loveless If you follow through 293 00:20:45,880 --> 00:20:47,290 the paper or maybe it was [INAUDIBLE] but 294 00:20:47,290 --> 00:20:51,710 anyway, between them they manage to convince you that it doesn't matter, okay? 295 00:20:51,710 --> 00:20:56,020 So here we go from a paper of 296 00:20:56,020 --> 00:21:02,430 very concrete detail of the clinking and clanking. 297 00:21:02,430 --> 00:21:04,100 So let's see about ten minutes, right? 298 00:21:04,100 --> 00:21:08,251 Okay, I know I need the algorithm myself. 299 00:21:08,251 --> 00:21:14,676 Oh well, okay, so. 300 00:21:14,676 --> 00:21:20,920 Okay, let's just look here, the details almost don't matter. 301 00:21:20,920 --> 00:21:24,061 Doran showed you some of this anyway. 302 00:21:24,061 --> 00:21:30,650 You see the he's calculating [INAUDIBLE] table is calculating. 303 00:21:30,650 --> 00:21:36,620 In this case, he's calculating the X 304 00:21:36,620 --> 00:21:42,210 as part of the XY solution of this two linear equations, okay? 305 00:21:42,210 --> 00:21:49,136 What you need to look at here, I'll point at it. 306 00:21:49,136 --> 00:21:52,244 Is you see there there's four multiplications. 307 00:21:52,244 --> 00:21:56,993 Different operands, different operands, and 308 00:21:56,993 --> 00:22:01,747 two subtractions, and then a division, okay? 309 00:22:01,747 --> 00:22:06,375 Now look, this takes three operations cards it's so designed, so 310 00:22:06,375 --> 00:22:11,571 here in Manobrium's paper is something that turns out to be distracting and 311 00:22:11,571 --> 00:22:16,270 a bit of a red herring through some of the rest of the presentation. 312 00:22:16,270 --> 00:22:19,000 I don't want you to be distracted by that when you eventually get to 313 00:22:19,000 --> 00:22:22,680 read the paper as you all will. 314 00:22:22,680 --> 00:22:25,870 Okay, okay. 315 00:22:25,870 --> 00:22:30,560 Lovelace and giving her account of the general purpose nature of the engine. 316 00:22:30,560 --> 00:22:35,170 I at first thought, because I have to say I paid more attention to 317 00:22:35,170 --> 00:22:38,830 the incontinent attacks than I had to the paper for a while, and 318 00:22:38,830 --> 00:22:45,270 I base myself in front of the fandom for 319 00:22:45,270 --> 00:22:49,180 having done that, but I hope I'm gonna redeem myself. 320 00:22:49,180 --> 00:22:52,920 I thought was found a major distraction. 321 00:22:52,920 --> 00:22:55,090 Anyways, here she's doing something very positive, 322 00:22:55,090 --> 00:22:59,970 explaining the general purpose nature of the machine. 323 00:22:59,970 --> 00:23:07,580 Here's what happens if you have written in the the bottom of the column. 324 00:23:07,580 --> 00:23:15,175 At first I thought, she thought, in the column that's the memorandum, 325 00:23:15,175 --> 00:23:19,396 that's what the computer scientists the abstraction relation. 326 00:23:19,396 --> 00:23:20,229 Being written there. 327 00:23:20,229 --> 00:23:21,660 So she writes a, n, and x. 328 00:23:21,660 --> 00:23:25,910 So the variables on those columns are a, n, and x. 329 00:23:25,910 --> 00:23:30,140 She's beginning to describe the programming notation that she's going 330 00:23:30,140 --> 00:23:31,920 to use a bit later. 331 00:23:31,920 --> 00:23:32,950 Okay. 332 00:23:32,950 --> 00:23:34,720 Da da da da da. 333 00:23:34,720 --> 00:23:36,400 Whatever the variables are, 334 00:23:36,400 --> 00:23:40,000 you can compute a variety of different functions of a, n, and x. 335 00:23:40,000 --> 00:23:43,870 And she gives us several, but here are two. 336 00:23:43,870 --> 00:23:48,760 To calculate ax to the n with these variables on its columns, it requires six 337 00:23:48,760 --> 00:23:54,570 multiplications to get x to the n, and one multiplication to get a times x to the n. 338 00:23:54,570 --> 00:23:57,430 And now just a curious use of notation here. 339 00:23:57,430 --> 00:24:00,300 And at first, I thought, what is. 340 00:24:00,300 --> 00:24:01,180 You struggle with this. 341 00:24:01,180 --> 00:24:03,861 You say, what is she doing? 342 00:24:03,861 --> 00:24:09,140 And you see there, that yeah, there are six multiplications, okay. 343 00:24:09,140 --> 00:24:13,130 But they're not six multiplications that arise necessarily from the structure of 344 00:24:13,130 --> 00:24:14,570 what's been written. 345 00:24:14,570 --> 00:24:18,580 So writing it down seven times is a bit strange. 346 00:24:18,580 --> 00:24:21,850 Okay. And you see this from time to time where, 347 00:24:21,850 --> 00:24:26,650 there is a counting of operations and because you don't know 348 00:24:26,650 --> 00:24:32,010 what the variables are going to be, you don't know really what the program is. 349 00:24:32,010 --> 00:24:38,830 This may be where the slogan, science of operations started to emerge. 350 00:24:38,830 --> 00:24:40,290 Fortunately it goes away again. 351 00:24:40,290 --> 00:24:43,970 As you read further you find that this distraction doesn't matter. 352 00:24:43,970 --> 00:24:47,990 For X times A to the N the operations would be, 353 00:24:47,990 --> 00:24:50,550 would be 34 multiplications here. 354 00:24:50,550 --> 00:24:51,150 Okay. 355 00:24:51,150 --> 00:24:57,220 But she's saying it's hard to detach itself 356 00:24:57,220 --> 00:25:02,082 from the idea that really what she's saying is 34 times 357 00:25:02,082 --> 00:25:06,830 is what you need to do, not 34 multiplications, is what happens. 358 00:25:06,830 --> 00:25:08,810 Eventually, you get away from it. 359 00:25:08,810 --> 00:25:10,630 There's Manabrea's complete table. 360 00:25:10,630 --> 00:25:17,930 Here's a simplification of it, where I have brought out something 361 00:25:17,930 --> 00:25:25,100 that sits there in the notation, but it sits there very quietly in the notation. 362 00:25:25,100 --> 00:25:30,820 Which is that when a variable appears as an operand, 363 00:25:30,820 --> 00:25:32,610 there's two ways of referring to it. 364 00:25:32,610 --> 00:25:37,460 And one way just means the variable in the variable column stays 365 00:25:37,460 --> 00:25:40,980 the same once it's been sent to the mill. 366 00:25:40,980 --> 00:25:45,680 And there's another form, which I've underlined in blue in this calculation, 367 00:25:45,680 --> 00:25:51,360 the precise role doesn't matter there, where those blue 368 00:25:51,360 --> 00:25:57,620 mentions denote a reading and then zeroing of the column. 369 00:25:57,620 --> 00:26:04,160 This is gonna prove decisive in one of the mistakes in the table. 370 00:26:04,160 --> 00:26:07,784 Reiner, I've corresponded with you but I don't know where you are. 371 00:26:07,784 --> 00:26:09,293 Can you put up your hand so I can see? 372 00:26:09,293 --> 00:26:11,173 Reiner? 373 00:26:11,173 --> 00:26:12,961 You're Reiner? 374 00:26:12,961 --> 00:26:15,950 Hello I'm Bernard. 375 00:26:15,950 --> 00:26:18,210 So I'm about to describe some work that Reiner and 376 00:26:18,210 --> 00:26:23,590 I essentially did along parallel tracks and then Dorin introduced us. 377 00:26:23,590 --> 00:26:26,460 And we discovered we'd been coming to the same conclusions, 378 00:26:26,460 --> 00:26:29,587 namely that there were mistakes in the. 379 00:26:29,587 --> 00:26:35,079 Oh, I'm going backwards and I should be going forwards, okay. 380 00:26:35,079 --> 00:26:41,024 Okay, so by the end of the first phase, before we hit note g, 381 00:26:41,024 --> 00:26:48,486 you've begun to get the flavor of the way in which g is describing as a table, 382 00:26:48,486 --> 00:26:56,040 the machine codes of the program, the instructions of the program. 383 00:26:56,040 --> 00:26:57,780 I've essentialized this. 384 00:26:57,780 --> 00:27:03,660 I've discarded quite a lot of this, the same height above that. 385 00:27:03,660 --> 00:27:09,340 Of stuff showing columns with zeros on them, and so on and so forth. 386 00:27:09,340 --> 00:27:12,320 So another kind of distraction you wanna watch for. 387 00:27:12,320 --> 00:27:14,180 So anyway, so just let's try and 388 00:27:14,180 --> 00:27:17,990 understand the Bernoullian under table in [INAUDIBLE] five, ha! 389 00:27:17,990 --> 00:27:22,750 All right, Richard Bornat was right. 390 00:27:22,750 --> 00:27:23,452 Too much material. 391 00:27:23,452 --> 00:27:25,116 Okay. 392 00:27:25,116 --> 00:27:31,060 However, I listened to him I put a conclusion first. 393 00:27:31,060 --> 00:27:39,160 Okay, so what the table actually demonstrates is the computation of B7, 394 00:27:39,160 --> 00:27:44,590 given that B1, B3 and B5 have already been computed, okay. 395 00:27:44,590 --> 00:27:50,030 So, actually I sort of disagree with Dorum, 396 00:27:50,030 --> 00:27:55,786 because as you read down the side of these tables, there is an implicit sequencing. 397 00:27:55,786 --> 00:27:57,676 There. 398 00:27:57,676 --> 00:28:02,400 Okay, and all straight line calculations we've seen so 399 00:28:02,400 --> 00:28:05,090 far, everything that didn't have a looping. 400 00:28:05,090 --> 00:28:07,090 That implicit sequence is enough and 401 00:28:07,090 --> 00:28:11,360 if you put each of those things on cards that would have been enough too. 402 00:28:11,360 --> 00:28:14,760 Right, but here's where she begins to show 403 00:28:14,760 --> 00:28:19,600 that she differs from Babbage in her view of what the machine can do. 404 00:28:19,600 --> 00:28:24,120 Okay, I mean can do mathematically even. 405 00:28:24,120 --> 00:28:27,348 Independent of what interpretations you give to it. 406 00:28:27,348 --> 00:28:30,726 Okay, so why would you do that? 407 00:28:30,726 --> 00:28:34,660 Why would you not try and describe a general program, right? 408 00:28:34,660 --> 00:28:39,245 You know, why didn't you write the preconditions, the loop in there in 409 00:28:39,245 --> 00:28:44,934 the [LAUGH] Okay, this style of explanation goes 410 00:28:44,934 --> 00:28:50,680 right back to Babylonian times if you look at how Babylonians explore the algorithm. 411 00:28:50,680 --> 00:28:55,980 They give you very concrete description of a particular calculation and then 412 00:28:55,980 --> 00:29:01,760 by the side, you'll see the generalized explanation of what is going on. 413 00:29:01,760 --> 00:29:06,010 This is mixed in the object of [INAUDIBLE] as you'll see 414 00:29:06,010 --> 00:29:11,870 open the inside of your goodie and you'll see 415 00:29:11,870 --> 00:29:16,460 there is both a concrete description of what she's the particular calculation she, 416 00:29:16,460 --> 00:29:19,810 she's talking about and 417 00:29:19,810 --> 00:29:23,875 some disconcerting here it's it looks like this touch panel has lost connection. 418 00:29:23,875 --> 00:29:29,290 [LAUGH] All right. 419 00:29:29,290 --> 00:29:30,810 But what her intention is and 420 00:29:30,810 --> 00:29:34,620 her explanation is, her discourse about the table. 421 00:29:34,620 --> 00:29:35,870 It's okay. 422 00:29:35,870 --> 00:29:40,265 It was just, I was telling the truth but it was sort of a pleasantry. 423 00:29:40,265 --> 00:29:44,160 [LAUGH] Right. 424 00:29:44,160 --> 00:29:48,070 So, Lovelace's intention is to show that the table can be interpreted 425 00:29:48,070 --> 00:29:50,530 more generally. 426 00:29:50,530 --> 00:29:56,200 And certainly, Reiner and I independently and then together, 427 00:29:56,200 --> 00:30:00,010 despite noticing bugs in the table, we've shown to our own satisfaction. 428 00:30:00,010 --> 00:30:03,200 And I think it would be to your satisfaction. 429 00:30:03,200 --> 00:30:07,150 If we have the time to explain it, that this is the case. 430 00:30:07,150 --> 00:30:10,460 Certainly I now believe that if the engine had existed, 431 00:30:10,460 --> 00:30:12,310 Lovelace would have noticed the bugs very quickly. 432 00:30:12,310 --> 00:30:14,690 So you're nearly all programmers. 433 00:30:14,690 --> 00:30:19,505 Hands up, those of you whose first program, 434 00:30:19,505 --> 00:30:27,090 [LAUGH] You know the end of this I'm pleased. 435 00:30:27,090 --> 00:30:29,960 Okay. 436 00:30:29,960 --> 00:30:31,730 I do remember my first program. 437 00:30:31,730 --> 00:30:34,210 Actually I tell you there are endless stories I can tell. 438 00:30:34,210 --> 00:30:39,865 I'm just anecdotal is a word that could have been coined for me. 439 00:30:39,865 --> 00:30:42,800 [LAUGH] >> Okay. 440 00:30:42,800 --> 00:30:50,548 Had the engine existed Lovelace would have noticed the bugs very quickly. 441 00:30:50,548 --> 00:30:56,902 The really curious thing here and the thing that is irritating, I think to Dora, 442 00:30:56,902 --> 00:31:02,323 to me, to Reiner certainly, is that since this [INAUDIBLE] started, 443 00:31:02,323 --> 00:31:07,462 in this book, Audrey's book but this table denoted a program and 444 00:31:07,462 --> 00:31:11,407 that the program computed the delineate on this. 445 00:31:11,407 --> 00:31:17,216 Nobody's gone back to the table and try to verify or at least exam. 446 00:31:17,216 --> 00:31:20,046 Whether it computed anything remotely like the Bernoulli numbers. 447 00:31:20,046 --> 00:31:21,850 They've taken, right? 448 00:31:21,850 --> 00:31:23,427 I mean, here at Hartree, 449 00:31:23,427 --> 00:31:30,151 professor of what these days might be called computation at Cambridge says. 450 00:31:30,151 --> 00:31:32,675 The evaluation of the Bernoulli numbers from this recurrence 451 00:31:32,675 --> 00:31:34,820 relation is programmed for the analytical engine. 452 00:31:34,820 --> 00:31:38,050 This is the end of his stuff on Babbage's analytical engine, right. 453 00:31:38,050 --> 00:31:42,060 So he credits Ada with producing this producing the table, 454 00:31:42,060 --> 00:31:43,930 just says bang, it does it. 455 00:31:43,930 --> 00:31:49,700 Everybody else who's written about this, 456 00:31:49,700 --> 00:31:55,845 including the editor of the important volume Faster Than Thought, 457 00:31:55,845 --> 00:31:59,160 that's E.V. Boden, isn't it? 458 00:31:59,160 --> 00:32:03,730 Seems to have gone back to that and simply taken at face value that claim. 459 00:32:03,730 --> 00:32:08,220 Now, it's true and it's not true in the way that your program works and 460 00:32:08,220 --> 00:32:10,980 it doesn't work, right. 461 00:32:10,980 --> 00:32:16,000 What I mean is, not talking about Schrodinger's 462 00:32:16,000 --> 00:32:20,310 program, here. 463 00:32:20,310 --> 00:32:26,650 We do give an explanation, I'm not going to trouble you by taking you to the end. 464 00:32:26,650 --> 00:32:30,250 We simply believe that she would have noticed the bugs very quickly but 465 00:32:30,250 --> 00:32:34,310 we are mystified at the fact that there has been no acknowledgement 466 00:32:34,310 --> 00:32:37,620 of the bugs which are significant. 467 00:32:37,620 --> 00:32:40,210 I even looked into the literature, I read a lot in the literature. 468 00:32:40,210 --> 00:32:41,810 I read a Russian paper. 469 00:32:41,810 --> 00:32:44,045 Sorry, I read a translation of a Russian paper. 470 00:32:44,045 --> 00:32:46,920 >> [LAUGH] >> I can't 471 00:32:46,920 --> 00:32:49,040 lie in front of my coauthors, right? 472 00:32:49,040 --> 00:32:54,070 I read a translation of a Russian paper which claims 473 00:32:54,070 --> 00:32:57,080 we translated this program and it runs. 474 00:32:57,080 --> 00:33:03,040 Okay, but that's not what they did, that's not what they did, okay. 475 00:33:03,040 --> 00:33:07,025 If they had translated the table back literally as a simulation, 476 00:33:07,025 --> 00:33:10,728 which is what I did at first its where began to have my doubts. 477 00:33:10,728 --> 00:33:13,540 I'm trying desperately to understand what is going on here. 478 00:33:13,540 --> 00:33:16,675 I wrote a desperate letter to Doren saying, hey Doren, 479 00:33:16,675 --> 00:33:19,800 has anybody actually run this right? 480 00:33:19,800 --> 00:33:24,165 I sent a courtesy copy to our organizer who said haven't you guys got 481 00:33:24,165 --> 00:33:27,543 something better to do than to find errors >> [LAUGH] 482 00:33:27,543 --> 00:33:28,937 >> Right? 483 00:33:28,937 --> 00:33:29,890 >> Bless her. 484 00:33:29,890 --> 00:33:32,164 There is something better to do, 485 00:33:32,164 --> 00:33:37,039 which is to say if the spirit of the programmer had been followed here and 486 00:33:37,039 --> 00:33:41,930 if she had been allowed to find the mistakes would the program have run? 487 00:33:41,930 --> 00:33:46,180 And the answer to that is unquestionably in my mind yes. 488 00:33:46,180 --> 00:33:49,030 And actually I'll go further than that. 489 00:33:49,030 --> 00:33:51,750 There are, she struggles. 490 00:33:51,750 --> 00:33:53,266 She argues at the end. 491 00:33:53,266 --> 00:33:58,196 That although she's given you a very specific description of 492 00:33:58,196 --> 00:34:06,745 the state of the machine having computed V5 and about to compute V7. 493 00:34:06,745 --> 00:34:13,748 Really the part of the table, oh, there's some Bernoulli numbers by way. 494 00:34:13,748 --> 00:34:17,720 >> [LAUGH] >> Right, right. 495 00:34:17,720 --> 00:34:20,490 The reason I show you these is that some of them 496 00:34:20,490 --> 00:34:23,660 are slightly under 50 digits long, right? 497 00:34:23,660 --> 00:34:26,130 And some of them are unquestionably not. 498 00:34:26,130 --> 00:34:30,378 So there's a whole other thread here for the numerical analysts in the audience. 499 00:34:30,378 --> 00:34:33,197 Hands up. 500 00:34:33,197 --> 00:34:38,507 >> [LAUGH] >> Which is, actually, just 501 00:34:38,507 --> 00:34:43,595 how far could the computation have gotten and calculated accurately these values. 502 00:34:43,595 --> 00:34:45,998 I've shown them as rational representation. 503 00:34:45,998 --> 00:34:53,358 [INAUDIBLE] I thought that was the safest way to do it. 504 00:34:53,358 --> 00:34:59,850 What she says is, by using this recurrence relation, we do 505 00:34:59,850 --> 00:35:04,120 a first series of computations that essentially computes B1, second series of 506 00:35:04,120 --> 00:35:09,700 computations that computes B3, a third series of computation that computes B5 and 507 00:35:09,700 --> 00:35:15,030 then that third series of computations which is what I describe as the body of 508 00:35:15,030 --> 00:35:23,230 the loop will compute any Bernoulli number from all of its predecessors. 509 00:35:23,230 --> 00:35:28,147 She argues very strongly that that is the case and she makes her case. 510 00:35:28,147 --> 00:35:30,787 When you read the paper or at least when you read my paper or 511 00:35:30,787 --> 00:35:33,162 Reiner's paper you will see that that is the case. 512 00:35:33,162 --> 00:35:38,485 And I think that we should applaud her for that and also her observation at the very, 513 00:35:38,485 --> 00:35:43,064 very end of all of this, which is [INAUDIBLE] God you were right Richard. 514 00:35:43,064 --> 00:35:45,850 >> [LAUGH] >> Right? 515 00:35:45,850 --> 00:35:47,680 Here's what she says. 516 00:35:47,680 --> 00:35:49,947 It's interesting to observe that so 517 00:35:49,947 --> 00:35:54,774 complicated a case as is calculation as the Bernoullian numbers nevertheless 518 00:35:54,774 --> 00:35:58,077 presents a remarkable simplicity in one respect is. 519 00:35:58,077 --> 00:36:03,065 It is that during the processes for the computation of millions of these numbers, 520 00:36:03,065 --> 00:36:08,054 no other arbitrary modification would be requisite in the arrangements except in 521 00:36:08,054 --> 00:36:10,603 the above simple and uniform provision. 522 00:36:10,603 --> 00:36:16,610 She's inventing loop body abstraction, uniform provision for 523 00:36:16,610 --> 00:36:23,730 causing one of the data periodically to receive the finite increment unity. 524 00:36:23,730 --> 00:36:29,210 Very last word, I programmed the simulator which equipped the machine 525 00:36:29,210 --> 00:36:31,610 with this ability to sequence through tables, 526 00:36:31,610 --> 00:36:35,790 in other words turning numbers of columns into addresses of columns. 527 00:36:35,790 --> 00:36:39,100 I literally took her literal but slightly corrected program. 528 00:36:39,100 --> 00:36:41,210 I mean couple of places where its wrong. 529 00:36:41,210 --> 00:36:43,990 But not drastically wrong. 530 00:36:43,990 --> 00:36:48,622 Run it and well okay so we actually went up by showing 531 00:36:48,622 --> 00:36:53,815 Bernoullian numbers we went up to about B 991, okay. 532 00:36:53,815 --> 00:36:57,239 And then my patience was exhausted, and your's is now. 533 00:36:57,239 --> 00:36:59,302 >> [LAUGH] >> Thank you for listening. 534 00:36:59,302 --> 00:37:02,953 >> [APPLAUSE] 535 00:37:02,953 --> 00:37:03,247 >> Sorry, [INAUDIBLE]