Good morning. My name is John Ortega. I will be covering how big data works in the medical domain and how companies and others use patient encounters with machine learning to do various tasks like predict patient outcomes and report on insurance billing codes.  For the past 15 years, I've been working in software development and research. Currently, I'm working on what's called clinical language understanding in the professional setting. However, I also work on various projects, both in machine translation and natural language processing. I work as both a researcher and adjunct instructor at New York University in New York, New York. I also work for the biggest natural language processing employer in the world, nuanced communications. My days are generally filled with topics ranging from how to diagnose a patient with a particular disease to how to translate from English to Spanish without the help of a human. I changed my career path about eight years ago from a software architect and consultant to a full-time researcher dedicated to computational linguistics. Important note, the stuff that I'm going to present today is not by any means part of the company that I represent, so I'm basically going to give an overview of medical report coding and big data. Today, I will be talking about how big data and machine learning can be used to achieve various objectives in the medical domain. I will first talk about how medical report coding is used as a billing technique for the hospital and the patient. Then I will discuss specifics about how projects are including big data, along with complex algorithms to provide state-of-the-art services that may seem futuristic. Lastly, I will talk about how all of this is used to improve the medical world and what you would normally experience when you go to the doctor. Medical report coding generally involves a coder that oftentimes works from home. The coder is a person well-versed in clinical language and is able to judge from the text written on a clinical report what codes belong where. Insurance companies almost always bill using the coder's disposition. In modern times, software recommends codes of sorts to help the coder do their job more efficiently. Codes in the United States are part of a bigger medical terminology system that is agreed upon in advance. The examples in the slides are part of the most widely used system called the ICD-10 system, which is used for coding. In order to better understand how coding works, let's go through a typical medical coding pipeline. First, a patient will enter a clinical facility via an ER or through an outpatient facility. Once a doctor sees them, the doctor will produce a diagnosis of some sort and either ask that a procedure be done or send the patient home. Each of the steps in the pipeline are considered patient encounters or reports. In this pipeline, if we assume that this is the patient's first visit, four reports are created by the hospital. Each of the four reports or encounters are coded accordingly by the medical report coder. Once the patient is at home, the part we all hate happens. A bill is received showing all the codes that occurred in each encounter. In other systems, like the European systems, a patient wouldn't receive the summary. Rather, another billing agency, let's call it the government, would. From the Center for Disease Control, reports on how many visits are made as quite alarming. Billions of visits by patients in the U.S. alone are made. The main visits are done on an outpatient basis by visiting the hospital or the physician's office. However, emergency room visits make up millions of visits also. It's interesting to note that for the most part, United States medical facilities use some type of software to manage their patient records. A lot of those medical records end up in the hand of a coder. However, coders, much like doctors in the U.S. and everyone in the U.S., are quite busy. So, many companies are attempting to aid them by providing computer-assisted coding, also called CAC tools, to increase their productivity. And thus, permit the coders to handle more reports in a shorter amount of time. Enterprise-level software is needed to cover a facility's needs. At a whole, millions upon millions of records are available. And, as long as the software company is compliant with industry privacy standards like HIPAA, it can take advantage of several facilities reports to provide predictive services, like diagnosis, coding, and more. The facilities tools typically will integrate easily into APIs provided by the software company. APIs that are commonly found and the tools that are created by the U.S. companies are speech-recognition tools, devices, predictive services, security tasks, and finally, online tools. All of the API tools help any facility take advantage of big data processing that the software company can provide. Software that is backed by millions of records can be used to increase traditional coders' performance. Coders complete more documents and at less amount of time using CAC tools that enable them to select among a ranked coding list of having to originate the codes themselves. Ranking of codes is done using machine learning algorithms. The algorithms are based on deep learning and other statistical methods. Clinical data is somewhat noisier than other data, such as movie data. So, it's quite an achievement when enterprises can create CAC tools that are able to produce accurate customer reports and outcomes showing that the productivity can be increased. Coder agreement amongst trained teams is generally negligible, making the entire process for software researchers and developers a whole lot easier. To better understand the advantage of using big data for prediction in an electronic health record, or EHR system, I present a simple, fictitious, clinical record. The patient, John Doe, seems to have severe malnutrition and is in need of a digestive tube for feeding as he refuses to eat anything. Other than his feeding, he seems to be doing fine. The doctor recommends a procedure to insert a feeding tube. In an older system that doesn't take advantage of big data and predictive machine learning, a coder would have to find the ICD-10 qualifying text, look up the codes for the text, and then manually enter the code in the system using a form-like structure. In the more state-of-the-art systems, big data is used along with artificial intelligence, algorithms to highlight text and provide suggestions to the coder. Then, the coder would only have to select the best code and check that the document did everything correctly and the software was done. In order to accurately present these codes to a coder in an EHR, millions of clinical documents, patient encounters, are gathered and fed into a predictive model. The model is trained using a special algorithm typically based on the latest statistical techniques available. Then the EHR can load the model where new unseen data is presented in a document format. Text is then sent back to the back-end modeling software that, in turn, decodes textual phrases and marks them with several codes per phrase along with a probability. Those codes are then returned to the EHR and consumed by the medical coder and a click to select process that helps speed up the coder's workflow. In the next few slides, I will present an example of how this can be done using specific text labels for word groups such as acronyms. I'm not sure if everyone knows what an acronym is. It's basically an abbreviation for any term and the medical domain acronyms are actually one of the more research problems. One of the common tasks that can improve coding quality in an EHR system is the expansion of an acronym and a clinical report. When there is enough data available, acronyms can be expanded to provide more information to a model that will decode an unseen report. Typical acronyms that most of us have heard are things like BMI, Body Mass Index, EHR, I guess now we've heard that, ER, Emergency Room. However, in the medical domain, there are thousands of acronyms that most professional doctors know. The task of resolving and expanding an acronym such as RA to RUMARE can help decode the written text. The expansion can be done using a statistical model as well. One of the latest machine learning techniques uses what are called word embeddings and a convolutional deep learning model to break down and classify acronyms such as MG to milligrams. I won't bore you with the details because this is the business track of the event. However, it's important to note that a lot of research in the past few years has led to breakthrough discoveries replacing traditional statistical models such as support vector machine and naive base. In this slide, we see how various embeddings are used along with specific layers in a neural network like pooling and softmax to produce three good candidates for the MG acronym from the clinical sentence. This image is not meant to scare anyone. It's only big data and artificial intelligence. Okay. Now that I've let my research side come out, I'm going to go over quickly what word embeddings are and how they are transforming big data projects. I will quickly cover them to help better understand the slide from before. Word embeddings are part of a newer representation of vectors to represent words as input to neural network models. They allow models to interpret data in several ways that are not easy to read by humans due to the number of dimensions. Matrices are created using techniques such as bag of words to produce high probabilities for specific tokens that deserve more importance. Here, I added a simple example using Chris Tucker and Jackie Chan. But one can imagine how clinical text could be represented in acronyms or other words given higher importance in a weighted matrix. We will see in the next few slides how a representation of word embeddings can be used to actually produce what we're looking for in a report. Here are the sample results using machine learning with big data to predict the best acronym expansion for the four most common acronyms in clinical text. Most of us know the ER acronym as emergency room. It generally fails well amongst its competitor external rotation. We can see by the result that by using more data, models generally do better. It is my belief that we haven't reached the tip of the iceberg yet with deep learning and neural networks. This is a small example of one of the techniques that can be used to help enterprise software exceed expectations when solving hard problems like classifying text with codes or predicting patient outcomes. Now that we've seen how big data can be used to classify text in medical reports, let's go over some of the main reasons how CLU can be used to help doctors and patients reach a better outcome. Here are four ways that big data can help an institution that uses an EHR. First, patient outcomes become more predictable. Second, decisions by doctors become easier due to the plethora of information. Third, big data can be used to find unusual patterns that are normally not seen by humans. And fourth, an EHR can help alarm for events that aren't traditionally monitored. Let's dive deeper into these four important points. I don't think that I've ever made a patient that didn't want to know what's going to happen to them next. Patients, especially those in life-threatening positions are often victims of the lack of information. It's not the doctor's fault, though. The doctor may be entirely too busy to spend hours and hours looking at all of the patient information and reports. Some state-of-the-art techniques have been shown to help. For example, at NYU, we found ways to help diagnose cancer ahead of time. Another one has gained fame quickly and the bioinformatics community is incapable of being able to use big data to predict a patient's death. This could be useful for hospitals and doctors, especially when it's a difference of weeks or months. And last but not least, sepsis outcomes. One of the hardest problems that doctors currently face in the medical world is trying to predict when a patient will have sepsis. Most of us believe that the doctor knows best and, for the most part, that's true. However, since doctors are so backed up these days, they need help to make decisions, too. Big data inclusion in an EHR can assist the doctor in several ways. One of those ways is by extracting clinical facts from reports so that doctors get the gist of a patient's lifetime record immediately. At the same time, DHR can pay more attention to past reports and find things that were missing. Lastly, big data can help see if a patient complies in general by reviewing the patient's past visit records and the gaps in treatment. Patients typically display patterns of entry and exit to a hospital. When those visits become unusual, the pattern can be used by predicting what may be bringing the patient to the hospital. Some other patterns that can be found are underlying diseases not typically found or drug abuse and smoking patterns that tend to typically affect a patient greatly. Big data and machine learning scientists, we've spent years developing algorithms to detect these patterns. A hospital can take advantage of all of this work by simply using an EHR system with big data. Many of us have heard those beeping noises in the hospital room from vitals, blood, whatever it may be when you go to the hospital. Those beeps are typically monitoring vital records like blood pressure and oxygen levels. Most of us don't imagine how big data can be used to do a similar task, but using the text only. Laboratory values and their trends can be detected over long periods of time and alarms, maybe not beeps, can be sent via text message or emailed to the nurse on call. Other odd events that aren't typical to a patient's chart can be detected also. For example, blood loss, malnutrition, anemia. Whether it be used for alarming doctors about patients or assisting them with making decisions, there are some high level gains. A hospital can get out of integrating predictive outcomes into their system that most don't realize. And EHR, backed by big data, converts the traditional system to an all knowing assistant to produce faster response times and better decision making, which in turn makes everyone happier. Facilities that use EHR systems backed by big data knowledge can immediately become smarter. The better decision making makes patients happier and sets a higher standard to achieve. Software integration that uses AI is a quick way to improve the quality of healthcare in any facility and should be considered the next best step to take if they haven't already. Oh, here's the doctor smoke coming out of his ears. He's backed up with information from nurses, patients, colleagues, family. Doctors are seeing more and more patients than they used to. Patients expect to be treated with respect and generally want to be part of the healing. However, if the doctor can't provide an optimum experience, everyone suffers. The addition of an EHR with big data can give the doctor the tools that needed to cover more patients in a shorter amount of time. Thus increasing workflow productivity. To extend the alarming idea, it's important in the health domain when an EHR is integrated with a big data backend software engine that immediately becomes useful. It can be configured to warn somehow when the big data API fails and even contact all of the parties involved such as the IT team. Scheduling can also become part of the system. Big data can be used to create more accurate schedules to an EHR when certain trends are found. To sum up the idea of big data in a clinical setting, let's discuss how medical management can win from it. First, the well-being of a patient becomes part of the software's responsibility. That sets higher standards of automation as well and quality from day one when a software system is using big data and it's integrated into an EHR. Institutions become safer as a result of alarms and scheduling based on statistical truths found by big data. Lastly, management becomes quicker by helping the doctors make decisions and increase the knowledge of the patient outcome. As we embark on a new era rooted in big data, everything converts into a health goal that combines the traditional EHR with new services of many types that touch on every part of the medical tree. All branches of medicine can take advantage of a digital future and connections can be made between them to ensure a healthier outcome. We have only begun to see the immediate saving when using an EHR system. A recent study shows that there's a 9% difference in the cost between a patient or cost per patient between a hospital that use an EHR system and a hospital that doesn't use an EHR system. The next step, of course, is to include an EHR system in every EHR system and surely increase the savings involved and allow us to continue using AI across the board. This concludes the presentation on medical report coding. Thanks to the organizers for setting this up and to the audience for listening to my presentation today. Good day. Thank you very much. We have some time for questions. Hello. Thank you for your talk. Do you have any kind of knowledge that could be used for clinical essays or trends that doctors could use? Do you infer it out of the way? No one is training or doing anything to the data if you just provide it right away? Yes. On the software that I've worked on and the papers that I've done for the most part, it's been data from historical records. Also, since in the US it's very protected, you have a HIPAA regulation that doesn't allow you to touch anything without previous knowledge. So, typically it's six months or so until you actually get the data and start working with it and, of course, to build a model, you need more than six months of data. So, it takes time. So, as far as fearing any of the data, I don't think there's any problem there. The biggest fear is that someone actually breaks security and gets a hold of the data. So, if a person's been in an ER or something like that, they don't want others knowing what happened to them in the hospital. That's the biggest fear. You don't use anonymized data? Everyone does. You must use anonymized data. It's part of the HIPAA regulation. So, when you receive this data and you start to process it, the first thing you have to do is anonymize it. That doesn't necessarily mean that it can't be de-anomized, right? The idea is that the algorithms and so forth do, but there's a lot of different ways of getting around that, I think. So, that's the biggest fear right now, other than that, since it's pretty green, there's not a lot of people doing this. Google just began doing it. We've been doing it now for probably about eight years or nine years. So, it's pretty, but other than that, it's pretty green. So, there's not a lot of fear. People want this. People really, as a B2C and a B2C situation, as most of us would love to know when we're going to die, or maybe not. Thank you. Hi. Thanks for the talk. I was wondering if you had any, because I saw the deep learning model, did you have any personal preference for machine learning libraries? What do you personally use, or is a company that decides this? What do you like the most? I've done research on lots of different things. The frameworks when they first came out were more Java and C++, kind of rooted nowadays and this is the big craze. I mean, this is why you have so many people at this conference. Python makes it easy, right? So, I mean, I would just go and use a Python for the general stuff. But depending on how much data you want to process and the amount of time you have, you may need to use something that is not necessarily rooted in a framework.  Thanks. Hi, thanks for the talk. Have you felt doctors backlash that they fear that you're going to somehow change the job? The doctors don't. Generally, the coders do. Yeah, the coders are the ones that have to assign the codes to the reports. And this happens also in machine translation. When you have translators they're getting translation from Google, wherever, all they have to do is modify a few words. It's the same idea in the coding the hospital or medical coding sector. So the coders do, but the doctors are looking for anything that can help them because they're seeing 80 to 100 patients a day. And some hospitals in New York, especially, I know a few have been in there. I've seen them. These doctors are so backed up that anything that they can get to help them, they use. Well, since you mentioned about the fact that the data is very critical, I mean, who gets to know that data and use. I don't know if you have any insight. Now there's a lot of people talking about using blockchain technology to solve this. I don't know if you could provide us with some insight. Yeah, as far as blockchain is concerned, I think that's more related to Bitcoin and things like that on the hospital side. The biggest problem we're currently running into or anyone would currently run into is trying to secure the data on the cloud. So most companies want to get their data and they want to get their apps on the cloud because it's faster processing. It gives them more access to more GPUs and so forth. The problem is is you can't put patient data in the cloud without knowing that it's secure. I think that's the biggest problem we have. Now as far as how Bitcoin, I'm sorry, blockchain could be used to solve that, that's a whole new front. And I don't think there's, at least on the healthcare side, there's not that much information out there right now. In our case we're all doing it. We do everything in-house. We still use on-metal servers for a lot of things. Sorry, just following. My question came because I have seen that there's a call for proposals for European projects and providing public services and one of them was health services. And they mentioned that to use some disruptive technologies and they mentioned blockchain that I understand is not only about Bitcoins and money, but the trust and who gets the, I mean, who gets in and you are going to be sharing the data. You mentioned that the one of the problems is to put that in the cloud not really well, that's a big concern. It could very well be that that's the next disruptive technology. I don't know. That's way out of my domain, I think. Okay, thank you. Any other questions? Okay, thank you very much for the talk. Thank you.


Question is from Thunderbolt. I've been having chronic shoulder pain which makes it difficult and painful to bench press. Are there any other exercises that work the chest without using shoulders? You're asking the question, you're asking, you want the wrong answer. You wanna go around it. Yeah, that's not the right way. Are there exercises that you could do that won't hurt your shoulder that'll work the chest? Yes, are they going, is this gonna result in reduced performance? Maybe, I mean. No, there's nothing you can do. There's nothing you can do for the chest. There's nothing you can do with the chest that doesn't incorporate the shoulders. What I mean is, I'm sure there's exercises that will not bother. It won't stress the shoulder. Yeah, that won't bother his shoulder, but then he's gonna lose strength and he's gonna lose performance because he's gonna be avoiding the best, most best exercises. And he's not addressing the root cause. That's it. The real question should be, I've been having chronic shoulder pain which makes it difficult and painful to bench press. What can I do to get my shoulders to stop hurting? So I would take a break on your heavy benching and I would focus on shoulder mobility, upper back thoracic mobility and really figure out why the hell your shoulder's hurting in the first place because you're gonna be avoiding some of the best, like bench presses and incline presses are some of the best chest building exercises you could do. Listen, this is extremely common. This is very, very common because of upper cross syndrome, which is the rounded shoulders and the forward head, which almost everybody has this. Most of us, it's a spectrum of how bad it is. It's built into the environment.  We don't ever do anything behind us. So of course, it's going to train our body to be closing forward. Now, when you're doing the bench press it is not advantageous for you to be in that position. It is more ideal for you to be in a retracted position to where your shoulders are peeled back. But that's hard to do that because your brain just tells you to get this weight up. And if your default pattern is to always allow the shoulders to roll forward because you're that way most of your day and you get under a 200 pound bench press, you pull that bar off and then you drop it down. Your body just goes get this bar up and what it'll do is it'll push everything forward but you need to be able to stabilize the shoulder girdle and keep it peeled back while you press. This is why we created a program like Prime Pro and arguably the most valuable program that we created. When I think of everybody, athletes, trainers, your advanced age clients, people just getting into working out, to me that is those programs Prime and Prime Pro, in my opinion, should be in everybody's exercise library just because everybody's going to deal with stuff like this whether it be the shoulders, the ankles, the hips and instead of trying to find exercises that don't bother it, like Sal said, you need to figure out why that is, especially when it's chronic pain and we're not talking about acute injuries, we're not talking about somebody who fell and broke their arm or tore their rotator cuff.   I mean, it's normal in the fact that a lot of people deal with it but it's not normal that your body should feel that way doing a fundamental movement like a bench press. So let's figure it out and let's address it. Now, we don't see you in front of us so I can't say for sure but more than likely the point that Sal's making is probably correct and before you go into benching what you should do is prime really well. In fact, I know that I just did, we all did our Friday fitness tips that go up on our Instagram page and I actually gave a tip in regards to bench pressing and the tip that I gave was about priming before you get into that because of this exact situation because I know that this is super common. A lot of clients of mine would do this and I suffer from this. As to this day, if I get into a bench press a lot of times when I get under there my shoulder is clicking and I can feel it like catching and it totally gets aggravated unless I go and I spend five or 10 minutes priming all my back muscles that are responsible for pulling my shoulders back before I go bench and then when I actually put the work in and I do that I get under the bench I feel extremely comfortable. Yeah, all those stabilizers, rotators like if you're not expressing any rotational movement at all like this is gonna become a problem you're just not gonna track as optimally as you could even though it doesn't seem like it's even part of the process because I'm just pressing the weight right in front of me and all I have to do is this one simple move out in front but if that's all your emphasizes and you're loading that process continuously it's gonna stress and it's gonna start pulling everything out of track just a little bit to where you could counter that by just expressing more movement that your shoulder is very capable of doing. So to take the time to really kind of go through that and figure out where the sticking points are where the deficiencies lie is gonna be like massively advantageous if when you come back to bench you're gonna see a performance increase and also it's just gonna stabilize better which then alleviates the pain but yeah you gotta go back to the root and see what's going on.


People are called to our national forests for many different reasons, a closer experience with nature, the exercise and pleasure of mountain biking, the excitement of off-road driving, the challenge of hunting. For whatever reasons or mode of travel, they all use a forest service trail. Trails are the pathways to the national forests of the United States. They allow us the freedom to get away from it all and enjoy the great outdoors. Trails also protect nature from overuse. By funneling the foot, hoof and vehicle traffic onto designated trails, we limit the heaviest impact to these small strips of pathways and reduce the damage to surrounding areas. But there is a price to pay for the convenience and advantages of trails. Boy, this trail's a mess. I suppose we should talk to Greg about relocating it. Yeah, looks like most of it. Trails interrupt surface water runoff. Whether on steep or flat slopes, once the natural flow is changed, water will create a new pattern and it will take the easiest path, often down the cleared trail, removing soil and destroying the tread. Erosion happens in all climates, in mountains or deserts, in a variety of vegetation and soil types and on trails with heavy or light use. Severe erosion can occur during violent thunderstorms or during spring snow melt in areas with heavy snowfall. But if we can divert this surface water off and away from the trail, it won't build up to an erosive force. To prevent water erosion, proper design, location, construction and maintenance of the trail are essential. There are some basic structures, construction or reconstruction techniques that will deflect surface water off the trail. If properly installed and maintained, these structures and techniques help prevent and control trail erosion. The first technique is the grade dip. This dip in the trail diverts the water to the outside and off the trail. Grade dips are most effective on stable soils on grades under 8% and work best when incorporated into the original trail design and construction. Create a grade dip by excavating a dip 6 inches across the trail bed at a sharp angle, usually 45 to 50 degrees. The dip should be slightly outsloped or lower at the water spill point, so water flow off the trail is uninterrupted. Outslope the dip 3 quarters to 1 and a quarter inches for every foot of trail width. Once you've completed this shallow ditch, feather the trail into and out of the dip on either side. Feather the trail from the dip upgrade approximately 10 feet and downgrade approximately 3 feet. The downgrade section actually has an opposite grade to the prevailing grade of the trail. This way the water can't flow past this point and flows out at the spill point. Generally the length of a grade dip ranges from 10 to 20 feet, but may be as short as 5 feet. Depending on the amount of runoff, it may be necessary to construct a rock spillway at the end of the grade dip to prevent erosion at the water spill point. Drainage dips are constructed by using the excavated soil to create a mound on the downgrade side of the dip. However, constructed grade dips are preferred over excavated drainage dips because they hold up better under stock and wheel traffic. To install a drainage dip, shovel the soil from a 6-inch deep trench onto the downgrade side of the dip, making a 6-inch high mound. The mound should be smooth and well compacted so stock or wheeled vehicles won't cut through it. Feather the trail upgrade of the dip approximately 5 to 10 feet. Grade dips can also be used in a minor stream crossing to prevent the stream from running down the trail. In this case, construct the dip in the same manner as before, keeping in mind that the downgrade side of the trail must be at least 12 inches above the high water level. A rock spillway may be required. As we mentioned earlier, grade dips are generally used for grades under 8%. They're not recommended for trails with grades over 12% because the trail at the grade dip would be too steep. With a new trail, the grade dip can be flagged and staked properly where soil and water movement is of concern. There's usually enough variation in a trail that the dips can be worked in even at a steady 10% grade. Outsloping should run the entire length of a trail and is most effective when used in combination with grade dips. We mentioned outsloping briefly during construction of grade dips. Basically, outsloping means that the outer side of the tread is lower than the inner side, allowing the water to run off the trail. If a trail is constructed correctly, maintained at proper intervals, and no unusual factors exist, outsloping the tread is a good technique to divert surface water. Outsloping should run the entire length of a trail and is most effective when used in combination with grade dips. The grade of outslope must be greater than 2% to effectively drain the water from the trail surface, and in most cases, the maximum grade of the outslope is around 8%. Any steeper than that, and the tread becomes hazardous when frozen or snow-covered or during wet periods. Horses tend to prefer walking on the outside part of a trail, and bicycle riders like to keep their inside pedal away from the hillside. Rocks installed two to three feet apart will keep this traffic from breaking down the outside edge of the trail. The rutting effect of stock and wheels tends to create grooves in the trail. This forms a berm on the outside that defeats the outsloping and leaves the water on the tread. Water flow from seeps and springs may be too large to be moved off the trail by outsloping alone, and slough materials from the upper bank may build up the inner edge of the trail. To maintain an outslope trail, pull the slough and berm back into the trail, and then re-grade the trail. A water bar is a rock, a row of rocks, or a log laid in an angle across a trail to move water off the trail tread. A water bar isn't necessarily the best way to deal with surface water, but it's often needed when a trail is poorly located or has a grade that's too steep over a long section of trail. Although water bars are the most commonly used method for erosion control, they should only be used after grade dips have been ruled out. In some cases, especially for reconstruction of a trail or for steep trails, water bars may be the only option. The first step in water bar construction is to determine the location. There are several different elements to consider. First, the water bar must be located to fit the individual characteristics of the site. It should be as near as possible to the top of a pitch grade or as close to the source of the water as possible to reduce the amount of damage the water will do to the trail. Second, avoid locations where a long outlet ditch is required. Third, don't put a water bar where it'll discharge onto a steep, erodible slope or back onto the trail below. Fourth, water bars should discharge onto a filter area. And fifth, a water bar should be near a turn in the trail or at the end of a switchback, so the flow of the water can go straight as the trail turns away. With these considerations in mind, determine the proper spacing. Water bars must be close enough so water accumulation doesn't cause appreciable erosion. There are several variables to consider. The grade of the trail, type of soil, amount of runoff, trail use, and opportunities to move water from the trail surface all play a part in determining the spacing of water bars. Heavily used trails often need closer spacing because traffic loosens tread material, which may increase erosion. Trails in areas with intense snowmelt runoff or severe thunderstorms may need more closely spaced water bars. Obviously, these variables differ from forest to forest. Consequently, each forest needs a spacing guide based on local soils, precipitation, and use. This water bar spacing guide was developed for areas with both fine and coarse grained granite soils. For example, if the trail gradient is 5%, the water bar spacing in a low erosion area should be 300 feet. In a high erosion area, 150 feet. At 15%, this changes to 100 feet or 50 feet, depending on the erosion factor. Once you've determined where to place a water bar, move on to installation. The two major materials used for constructing water bars are logs and rocks. A rocked water bar is preferable to a log one because of durability. Rocks should be rectangular and narrow. Unfortunately, properly shaped rocks are seldom found near the trail, so you'll either have to haul them in or use logs. Treated logs are the best substitute for rocks, but require pack stock or motorized equipment to bring them to the trail site. Of course, you can also use natural logs cut near the trail site, but if the cost is reasonable, treated logs are preferred and will last much longer. Just be sure to treat any new drill holes or cut ends during the installation process. If you're using a log cut at the site, peel off the bark and use a species that is resistant to rotting. With materials chosen, the water bar is ready to install. Begin by digging a trench that's one half to three quarters of the depth of the water bar at a 40 to 60 degree angle to the trail tread. To determine this angle, lay a tool across the trail and mark the endpoint with the end of the handle. Next, pivot the tool approximately 90 degrees and mark the other end. Now scratch a line in the dirt connecting both points to create a 45 degree angle. At this angle, the water can flow straight and will carry the sediment off the trail instead of slowing and depositing it along the way. If the excavated material is clean soil or gravel, place it on the downhill side of the water bar. Don't disturb the tread on the downhill side of the water bar. It provides a solid support for the log or rocks. When using rocks, they should overlap like shingles so the water moves toward the outlet drain. If using a log, it should have a minimum diameter of six inches. Place the peeled log into the trench. Bury the log at least a foot into the hillside. Cut the lower end so it extends no more than 12 inches past the outer edge of the trail. The water bar is now ready to be anchored. There are regional differences in the preferred material for anchoring water bars. Rebar, wooden stakes, or rocks. Each has advantages and disadvantages. Rebar isn't as much of a tripping hazard as stakes and rocks. However, if the log wears down, it can become a problem if stocks step on the exposed rebar. Rebar is often the favorite choice in rocky country because it's easier to place rebar than stakes, and the right-sized rock isn't always available. However, rebar requires more tools and may take more people and stock to install. Rocks are often the first choice as anchors because they can generally be found close to the trail. When using rebar anchors, use a brace and bit to drill the log six inches from the end. Place it so at least 12 inches of the log can be buried in the hillside. Drill another hole in the log a foot from the outer edge of the trail bed. Using a sledgehammer, drive a half inch by 18 inch piece of rebar into both holes until they are flush with the log or are driven to the point of refusal. Saw off any excess rebar with a hacksaw. Bury the inside end of the log a foot into the hillside and cover with the excavated material. A good anchor is especially critical on trails with steep grades or extensive horse or wheeled use. Pay particular attention to anchoring the water bar in these situations. If you choose to use rocks, make sure they're heavy enough to anchor the log. Dig a hole for the rocks on each end of the log and put the rocks in place. They must be positioned so they won't inhibit the water flow on either side of the trail or reduce the width of the trail. When using wooden stakes as anchors cut them 18 to 24 inches long and sharpen one end. Place them away from the middle of the water bar so trail traffic won't dislodge them. Drive them into the ground at an angle. If the head of the stake frays or splits, cut it off to make a fresh surface and continue pounding. When the stake is far enough in the ground, cut the remainder off even with the top of the water bar. One other less common anchor method involves wrapping number nine galvanized wire twice around the log and anchoring it to a stake. The wire weathers well but it isn't as good as rebar, rocks or stakes. However, there is concern about introducing more wire into the backcountry. It may be picked up in the shoes of stock. The water bar is in place but the job is not quite finished. Runoff from the water bar can cause erosion at the outlet. To protect the discharge area, use rocks, granular material or well placed logs. Also, if there's a berm or if the ground slopes up or is flat at the discharge area, you'll have to dig an outlet ditch so water can flow out without running back onto the trail. Make the outlet ditch at least 12 inches wide and long enough to keep the water off the trail. After the water bar is anchored, the grade of the trail should be feathered into the excavation above the water bar. This may vary from approximately two feet to eight feet depending on the percent of the slope. It should also be slightly out sloped approximately one to two inches across the width of the trail. Add any previously excavated clean material and additional clean fill to bring it to the right level. Compact this soil approximately one inch above the top of the water bar to allow for settling in the first year. Don't use any duff, debris or other vegetative matter. Water bars need yearly maintenance to remove sediment that builds up and clogs both outlet ditches and water bars. Mud and debris should be deposited elsewhere. Clean dirt and gravel can be used to reinforce the downhill side of the water bar. Make sure the uphill grade is still feathered into the water bar and slightly out sloped. During these yearly maintenance inspections, you'll be able to tell if your water bars have been properly installed. If sediment is being deposited on an annual basis, the trail needs more water bars. If a water bar is completely filled, the angle of installation may be too shallow or you might need more water bars. Rubber water deflectors are basically a cross between a water bar and an open top drain. Rubber water deflectors are relatively new and not thoroughly tested for trail use. Some forests have tried them and are pleased with results. They found that cyclists adapt to them readily, horses aren't afraid of them and hikers have no problems negotiating them. Also riders of wheeled vehicles don't seem to ride up the cut slope of a trail with rubber water deflectors like they do to avoid the bump of conventional water bars. The location criteria for a deflector is the same as those for water bars, but the installation process is different. First, the deflector has to be assembled. After determining the length of the deflector needed, begin by bolting a piece of 3 eighths inch conveyor belt rubber between two pieces of two inch by six inch treated lumber. One edge of the rubber should be flush with the bottom of the lumber and the other edge should remain exposed approximately two and a half to three inches above the lumber. Various types of lumber can be used for a rubber water deflector as well as treated lumber. However logs aren't very stable in the trail and are difficult to bolt together. Solid rubber belting should be used instead of belting with fabric laminations. This keeps moisture from working down the seam and separating the layers. To install the deflector start by excavating a six inch deep trench angled across the trail at 45 to 60 degrees. Place the deflector in the trench so the wood is level with the trail surface and two and a half to three inches of the rubber is exposed. Fill and pack the mineral soil around the deflector. An outlet ditch should be constructed in the same fashion as a water bar. The deflector must be long enough to extend entirely across the trail and catch all water running down the trail. To maintain a deflector clean any debris or sediment from the upgrade side and from the outlet ditch. Reset it if it's dislodged or erosion has exposed the lumber. Another water control technique is check dams also known as retainer bars or steps. These are used to hold the trail tread in place and reduce the speed of water moving down the trail. They consist of rocks or a log creating a terraced section of trail. Check dams are built of the same materials as water bars and for the same reasons rocks work best for longevity and permanence. But again the right shaped rocks aren't often available at the trail site. Rocks can be slippery when wet and ice can dislodge them over time. Treated or peeled logs are the next best alternative but they don't last as long. One last consideration before putting in a check dam. Wheeled vehicles find them very difficult to negotiate. If you expect wheeled traffic on the trail consider other drainage structures. The height of the check dam is generally determined by what is required to restore the trail tread to its pre erosion level. However it should not be higher than 12 inches. When a series of check dams is going to be installed stretch a string from the first to the last dam at the proper height. In most cases the height of each dam in between will be the same height as the string. For a series of dams it is best to place them at equal distances from one another for easier walking especially for stock. The best length for the terrace section of a check dam is roughly the length of a horse or six feet or any multiple of six. Place the log check dam across the trail at a 90 degree angle. Anchor the log a minimum of five inches into an undisturbed bank or secure it to existing stable bed rocker pins. In bed logs a minimum of two to three inches into the trail tread. Rocks should be embedded a minimum of five inches. If you're making a rock check dam use only one rock to form the check dam or no more than two. If you have to use two the joints should be tightly chinked to hold back the mineral soil. Fill the rut upgrade of the check dam with mineral soil so it's level with the top of the dam so it forms a trail grade of three to five percent. You can make it slightly lower in the center so water will flow over the check dam at this point. The rise of the constructed check dam step should be between eight and twelve inches. Maintenance of a check dam generally requires resetting rocks or logs that are loose, chinking joints if material has eroded away and replacing mineral soil in the terrace above the check dam if it's worn away. The last water control technique we'll discuss is the drainage ditch. Drainage ditches are commonly used and very effective for springs and seeps above the trail. Drainage ditches are designed to intercept the flow of water before it reaches the trail tread. You don't need materials to make a drainage ditch just tools for digging. A ditch is excavated parallel with the trail on the uphill side. The water will flow into and along the ditch until it can be routed to the downhill side of the trail by means of a water bar or dip or a drain, culvert or bridge. Feeding water into culverts is preferred over water bars because it eliminates the need to route the water back over the trail. Ditches periodically need to be cleaned of debris to maintain the desired depth. Just a few more things. A good time to maintain water diversion structures is just before snow or heavy rain normally occurs. Moving surface water off our forest trails isn't difficult but it does demand careful planning, selecting the proper structure and installation and maintenance practices. The techniques that we've just covered will significantly reduce the effects of erosion which in turn reduces maintenance costs, increases the safety of trails and helps meet environmental goals and objectives. With your expertise and hard work you can help ensure better longer lasting national forest trails for the future.


Thank you for the invitation to speak in the seminar, I have to apologize that it's late, but my internet was down till about 30 seconds ago. Today of all people had decided to do this. Anyway, I think yours was the first sort of large scale online seminar that started after the pandemic hit. I think the vantage seminar had been running for a while, but that's been running, that was running even before the pandemic. But I think you guys were sort of up and running for the longest time. So when I first accepted the invitation a while ago to speak, I had hoped to speak actually about some other work that's ongoing. And then as so much these days, that work didn't exactly progress at the speed that we had hoped for, for reasons that have nothing to do with mathematics. And we really haven't gotten far enough to give a meaningful talk about this so I decided instead to speak about something slightly older. And this is work that was published last year in a special volume of contemporary mathematics that celebrated the 75 year anniversary of the journal mathematics of computation. And this is joint work with my recently graduated PhD student Perlas Karane, and my colleague and her co supervisor Matthew Greenberg. So for this talk I'm going to assume that people have some familiarity with elliptic curves, but that you really haven't seen any drenthal modules before. So that you've maybe heard the term modular polynomial or isogenous graph in connection with them with elliptic curves but not not really anything with drenthal module so if you're very familiar with drenthal modules. I don't know, take a snooze for the first little while or something. So, just for motivation so drenthal modules were introduced in 1974 by Vladimir drenthal, who's a researcher at the University of Chicago, he didn't call them drenthal modules he called them elliptic modules. We know them as drenthal modules now, and he introduced them in the course of proving the landlamps conjectures for GL2 over global function fields. And the aim was to have some some function field analog of the theory of complex multiplication. And the rank two drenthal modules in particular bear close similarities with kind of sister objects in the world of number fields. The rank one drenthal modules are very similar to cyclotomic fields. And I'll say something about this in a couple of minutes and the rank two drenthal modules are sort of the function field analog of elliptic curves and are very very similar to elliptic curves. So, I have a slide that has a laundry list of similarities between different modules and elliptic curves. And then another slide that has the differences. And one of the things that makes this area interesting, especially from a computational point of view is that you turn along and you try and adapt things from the world of elliptic curves and it works all great and and everything works out nicely. Until it doesn't. And then you run into these kind of subtle differences. That make, in particular, a big difference in computations. So the similarities are. So this is like a slide of the laundry list of properties for elliptic curves. So drenthal modules are classified into ordinary and two percent. So they have attached to them Jane variants and the outlier Jane variant is J equals zero. So there's no 1728 here. They have a similar structure automorphism group, which is almost always similar except J equals zero has some extra in the morphisms. There's a notion of torsion points, except points are not really geometric points like there's no point addition but there's done a notion of poor torsion. And the torsion at a particular prime element P determines ordinary or super singular. They have isogenes and dual isogenes. There's a notion of a drenthal module of polynomial and the end string top module polynomial parameterizes pairs of an isogenous string top modules. And then if you restrict to N being a prime, in this case an irreducible polynomial, and you build the isogeny graph. So the vertices are Jane variants and the edges are ally isogenes. Then this has a very similar structure to elliptic curves. So in the ordinary case, the, sorry. It has a very similar structure and in particular the ordinary components are volcanoes and the endomorphism ring also looks similar. So in the finite field case, the endomorphism ring is an order in an imaginary quadratic field in the ordinary case and then maximal order in the quaternion algebra over function field in the super singular case. So this is all wonderful and immediately very analogous to elliptic curves but then there's different things. So, the first difference is there's no geometry like we have for points on elliptic curves you can't add points or things like that. We don't have any of this. There's no group structure. There's no value formulas as a result because the formula for isogenes is based on sort of, you know, the arithmetic of points. In general, in function fields, all valuations are non-archimedean so the absolute value behaves very differently. There's a notion of dwindle module of forms and they have expansions, which is the analog to Fourier expansions. But they're not like always the same for elliptic curves the J function is the J function each lattice has one J function. But for elliptic curves, it depends on the finite base field FQ and that turns out to make an enormous difference for computations and bounds and this kind of thing. So the J function looks simply as differently modular polynomials look and behave differently, most notably the growth rate of their coefficients is actually different. A side note that's not going to be relevant here dwindle module seem to be completely unsuitable for cryptography. Everything that's hard find it the curve seems to be easy for, for dwindle modules. And finally, what attracted us to this topic is that there's been very little sort of serious computational work and actual formal algorithm analysis and complexity theory analysis and so on. There were some I mean there's some algorithms implemented in magma. Let me mention a couple of just recent work including this one so a couple of years ago. Mostly who was a student at the University of Waterloo, and his supervisor Eric shows developed a couple of very fast algorithms for for computing the characteristic polynomial of Frobenius so the trace of Frobenius that's the dwindle analog of point counting. And then in this work what we developed is algorithms to compute the J function expansion to an arbitrary position to compute modular polynomials. And in general isogenes and dual isogenes so for isogenes we needed sort of an analog of the loose formulas. Now, what we opted to do for for for current as thesis word is to take a theory that's already in existence for dwindle modules and take algorithms that was based were based on that theory. And that was the classical analytic method for computing modular polynomials. And, but that meant that some of our algorithms do not correspond to state of the art algorithms for looked at curves. That's what we're working on now so with current PhD student Edgar Pacheco Castan we're working on taking some of the faster more state of the art algorithms, developing the corresponding machinery for dwindle modules, and then implementing them. So that's kind of an overview. So with that, let's start what's it going to do. Well, the first thing we need let me set the stage with some notation here. So throughout the talk q is going to be a prime power fq is a finite field of order q. Then we take an extension of fq. So let's call that L later on will will fix particular else but for now it's just any extension of fq. Now is the q power for Venus. So that just raises elements to the power q. And finally L of x is the polynomial ring overall. So just very basic notation. And then we need the notion of an additive polynomial and additive polynomial satisfies this equation here. So as a polynomial, not my substituting values but as a polynomial. So it's known that a polynomial is additive if and only if it has this kind of a form here. So all the monomials that appear have exponents that are powers of q. So that's precisely the additive polynomial. Okay. Now a slight change of topic. So let's look at an element in L. And let's look at the endomorphism that's given by multiplication by L. So we'll connect to additive polynomials in just a minute and let's do a little calculation. So we want to see how tau and alpha play together. So we take tau alpha and we let it loose on x and axis is now we're doing this for polynomial so access the the variable of the polynomial. Let's do a quick little calculation. And that's tau of alpha x. And what does tau do it raises to the power q. So that's just alpha to the q x to the q. And that's just the same as alpha to the q times tau of x. So tau alpha when you let it loose on x acts commutatively on non commutatively and it's the same as alpha to the q times tau. So this defines a multiplication between elements and alpha and the Frobenius tau and with that we can define this object here L of curly brackets tau. This is a ring this is the ring of twisted polynomials in tau with coefficients in L and it's a suffering of the endomorphism ring of L. And this is this is polynomials and how the addition is the standard addition, but the multiplication is this twisted multiplication here, where tau alpha is alpha to the q tau so this is a non commutative multiplication. So that's the ring of twisted polynomials. And what does this have to do with additive polynomials while there's a bijection between the set of additive polynomials over L and this ring and it goes like this where you have x to the q to the I here becomes tau to the I. Normally what does this map look like well if I have an additive polynomial f of x. That's the same as taking this polynomial g of tau here that looks like this and letting it loose on x, letting it act on x. So of course this is just a bijection it's not an isomorphism because one of these rings is commutative and the other one isn't. Okay. Right. So that we're almost ready to define a dream file module we need one more piece of notation. I'm going to use the notation a throughout for the polynomial ring over fq and K is the field of fractions and the ring of rational functions over fq in an indeterminate T. Not the same as x is before. So that notation in the function field world and the drill felt world and now we're going to look at a specific field L. I said we're going to use specific field else. And we're going to try to map this a into L and some sort of canonical way and those maps are called structure map and there's two cases. We have a finite field case where we basically let L be an extension of, of f of degree D. So we take an irreducible polynomial monic and irreducible p of t and then we form the quotient ring. And so this is just a degree D extension and the structure map is just a natural suggestion. So polynomial L gets mapped into this ff q to the d via taking a more p. And that goes to the case of elliptic curves over finite fields and the other cases the analytic case that corresponds to elliptic curves over the complex numbers and we form sort of this rather horrid looking field here, and this is the following so first you start with the rational function field, we take its completion at infinity. So that's preserve series in T to the minus one. So you take the complete field. But that's not automatically closed so you take the algebraic closure. That's the bar here. So now it's algebraically closed but it's no longer complete so you take the completion again, but fear not you don't have to keep playing this game because now you actually have a field that is both algebraically closed and complete with respect to the infinite infinite place. And so that is the function field analog of the complex numbers. So that's algebraically closed and complete with respect to the infinite place and the structure map embedding a into this is just included. So those are the two cases we're going to look at for our computations we're always looking at the first case, but for the analytic theory we need that second case so I'll say a little bit about the second case in a moment and then we'll look at that. Okay so what's it doing so here's a sample computation once you invent a into L of tau of this sort of funny twisted multiplication just if you've never seen this so you can wrap your head around it. So let's take. So this is now an element in L because polynomials are embedded into L so this is a polynomial in tau so this is in sorry this is an L of tau. And the coefficient is a polynomial in T so that's an object in a. Okay, how do you multiply this well we multiply everything by everything that's what we always do. But now in this red term here things are out of order because that the the coefficient should always be to the left of tau. So let's pull the tau squared apart. Now remember how does tau act on things. It raises things to the queues power. So tau acting on T squared is T squared to the queue. Okay. And now we need to let the second tau act. So we have the second act our act on T to the two q and again raises it to the power q and we get this result. So this is this is a simple computation in L of tau when a is embedded in this and this these are objects that we're going to be using this is that we're going to be using is polynomials and tau, whose coefficients are polynomials and T. Okay, the images of different modules are precisely objects like this. Okay, so now we're finally ready to define a different module. So a different module isn't a module at all. It's actually a map. It's an Fq algebra homomorphism. So specifically it's an Fq algebra homomorphism from the polynomial ring a into this ring of twisted polynomials L where L is now one of the choices we had from before it's either a finite field extension of Fq, or it's this funny complex number like field C. So it drops a polynomial a to an image which in the world of twin felt modules is usually noted fee sub a rather than fee of a with brackets it's usually fee sub a, and it only has to satisfy two pretty simple properties. It's a constant term so every image fee a is a polynomial in tau with coefficients in L. And the constant coefficient of this polynomial is a or rather the image of a under the structure map a in a embedding into L. So it's either a module of P, or it's just a itself via inclusion. And the second condition is a non degeneracy condition that tells us not all images of this twin felt module are constant polynomials. So at least one image is an honest to goodness actual polynomial in town. So that's what it went out module is now of course the first question is, if it's not a module why is it called a module. So why a module. The reason is that it oops I'm very sorry. And the reason is that it turns this field L into an a module in a new way. So if I take an element alpha in L and a polynomial a in a, then you can turn L into an a module just by ordinary multiplication I take alpha and I multiply by a. So the multiplication in L via the structure map that maps a into L and that's a module action. But a drink out module provides a different module action via namely a acting on L is just fee sub a the image of the drink out module of a acting on alpha so substituting alpha. The second coefficient of this thing here is a tau to the zero by property one and tau to the zero is the identity map. And so the identity map maps alpha to alpha so that means this thing starts out with a alpha plus some higher terms here, not of tau but rather of tau of alpha that's an that's an error. The accuracy condition shows that this is not always just equal to the first term. So this has some some other terms here as well. So it's a new way it's a different module action. So that's why they are called different modules but they're fq algebra homomorphisms. So it's basically just an fq algebra homomorphism mapping polynomials into this ring of twisted polynomials subject to these two conditions the second one is just non degeneracy in the first one is that just the constant coefficient is just a. Okay, so some properties the property is first proper is when the structure map is inclusion, then this is injective because the constant coefficient is the same as the argument. Right. So if, if, if, if, if two images are equal then the constant coefficients are equal which means that their inputs are equal. The second thing is because it's an fq algebra homomorphism all you need to write it down to define it fully it's it's it's image on T, and then via the fq algebra homomorphism property that determines what it is on the entire ring of polynomials. So if you just write it down what is the image of T while the constant coefficient is T.  And this are is called the ranker fee it's not called the degree it's the ranker fee. And why is it the ranker fee. Well, there's a notion of a torsion as I mentioned before which has nothing to do with with a torsion group or it's just a kernel of a particular image so I take a polynomial a I form its image p sub a that's an endomorphism. And if I take that that endomorphisms kernel. So all the roots basically, right there's a polynomial just the roots of this polynomial, then that kernel is isomorphic to this free rank our module. And that's why it's called the ranker fee. And just to sort of make the connection to to to give you some idea of where landlines come in and where we're going to use this is that if you join this torsion to L you get a Galois action, and that that injects into GLR of this ring. Okay, so there you see the you get an inkling of where landlines comes in. Right and in particular the rank our case. This is actually an isomorphism and this group is just a month a star. And this corresponds to Z mod a that star. So this is just a multiplicative group in module a here. And so with that, let's look at the cases of small rank. So the first round is the rank wonder in thought module there's only up to isomorphism one rank wonder in thought module and it looks like this. And it was actually proposed to car by Carlett's in 1935 long, long, long before drenfield introduced drenfield modules. And it looks like this. And by what I just said on the previous slide if you if you join I've now switched my age to M to make it look a little bit more like what we're used to from cyclotomic field so if you take a polynomial M and you join the m torsion, you get this color extension the color group is that my m z star well it's a month a star. And so this is what I mean when I say these are the analogs of cyclotomic fields, they behave exactly like cyclotomic fields they have a galore group they have a similar galore group and many many other ways so that's all I'm going to say about rank to wonder in thought module modules and the rank to drenfield modules looks like it looks like this you know it's image on T is given like this. This is a notation that's usually used G and delta and that's not an accident. The delta is meant to look like the discriminant delta of an elliptic curve, and the G notation is used of well for elliptic curves over C. Oftentimes the coefficients are called G two and G three. And so this is the same G sort of. Okay, and you see here, in fact, they have something attached to them that's a J invariant. If it was two plus one were three, then it would look like the J invariant of an elliptic curve. But this is the J invariant of the drenfield module it's an element in L and you see here already you get already an inkling of how things are different. The J invariant depends on the base field of the drenfield module so it depends on FQ. And with that, we actually have ordinary and super singular drenfield modules, and this is only in the finite field case so our L is now FP which is a finite field. And these things are ordinary sure enough if this P torsion P was the polynomial that defined this extension is the P torsion is this that it's ordinary and if the P torsion is trivial and it's super singular. So this is exactly the characterization from elliptic curves and right to turn out to be the function field equivalent of elliptic curves, even though they look very, very different they're completely different objects. There's FQ algebra homomorphisms. They share many, many similarities with elliptic curves. Okay, so we can define maps of twin felt modules. So, this is a bizarre notation because P and C are mapped but we still use this notation you from P and C it's a morphism it's just a polynomial with coefficients and L bar that satisfies this condition here so you take any polynomial a you form its images of the two modules. So this is a morphism. So this is just an identity of endomorphisms on L on L bar actually. It's an endomorphism if the two twin felt modules are equal. It's an isomorphism if it's invertible in which case, it's just a constant in L star in L bar star. The isogyny is called an isogyny if it's nonzero and it's not hard to see that isogen is preserved rank. Every isogyny has a dual isogyny and in this case the dual isogyny satisfies these two equations so u times its dual is like phi is phi n and here's cn so this is the image of phi and of c and a sum fixed polynomial n, and this polynomial is the isogyny. So here degrees of isogenes are polynomials they're no longer integers and we call this an n isogyny and then finally we say that u is defined over L if its coefficients are in L so we're only going to look at isogenes defined over L. So this is exactly the same lingo for maps between twin felt modules as we have between elliptic curves. So let me give you some examples so you actually see what these things look like. So this is two equals three. This polynomial defines our finite field extension L of fq. And here's an example of a T isogyny. So this is this is a polynomial tau u is tau plus this polynomial and T, and this is a T isogyny it has degree T, and it maps this to this twin felt module. So remember how do you read this, this twin felt module means that if you take the image of T, then this is T cubed tau squared plus T squared tau plus T, that's the corresponding rank to the twin felt module. And then the dual is this linear isogyny. So some polynomial times tau plus another polynomial. Here's another example this is a T plus one isogyny with this dual. Here we have a T plus two isogyny tau plus this polynomial maps these two twin felt modules and the dual is this and these polynomials are in fact examples of a much more general characterization that we managed to do. My thing is really sensitive. And that's a characterization of linear isogenes of linear degrees. So these are isogenes that look like this tau minus alpha for some alpha and the degree n is linear and monic. And then we start with the twin felt module and we have formulas for the image twin felt module. All these parameters satisfy this identity and we are formulas for the dual isogeny and the dual isogeny is also linear. We tried to characterize isogenes of higher degree in this way. And yeah, not going to happen. I mean the symbolic computations are just incredible. Here you can prove this by a symbolic computation on polynomials and it's relatively straightforward. But as soon as you get to higher degrees, it's really horrific. Okay, so I have one slide on the analytic theory of rank to drain from modules and that's because it's almost. I don't say almost identical but very, very similar to the whole analytical world of elliptic curves. So different models of rank are over this funny field C infinity that corresponds to the complex numbers. There's one to one correspondence with rank our lattices over the polynomial ring. This correspondence extends to a group isomorphism and in fact an FQ vector space isomorphism of morphisms between rank I drinks up modules and morphisms between a lattices. And then the coefficients, if you look at the transfer module in this analytic world, it's coefficients are modular forms drinks up modular forms in some suitable uniformizer, and they're given in terms of Eisenstein series. And they have these expansions. They have the analog of deuring lifting so you can move back and forth if you're given a drink up modules and an endomorphism, you can move back and forth by me for a moment to close my door by me. You can move back and forth between drink up modules pairs of tens of modules and the morphisms defined over FP the finite field world, and this field C infinity which is the analytic world.  And so with that, let's delve into this. Let's take your rank to drill felt module and land that Lambda, capital Lambda is the lattice associated with it, and then those two coefficients G can be expressed in terms of these Eisenstein series. q minus one and e sub q squared minus one are Eisenstein series of weight q minus one and q squared minus one. This is the Eisenstein series of weight k for this lattice. And what is this bracket i and bracket two here? This is just a shorthand notation for this polynomial t to the q to the i minus t. So this should look sort of like stuff that you're used to from the elliptic curve analytic world. You can actually compute these things. And here's where it finally becomes actually very interesting. These are the first two terms of the expansions of these coefficients. They're weighted coefficients by this parameter pi bar to the q minus one here arises from the Eisenstein series of the polynomial ring of the trivial lattice. And it's a normalizing factor. And it's kind of the analog of two pi i from the complex numbers. And these are the extra expansions. This bracket one here is again this polynomial t to the q minus t. s is a uniformizer here, the corresponding uniformizer. What is s here? Well s is something is a power of t t to the q minus one. And what is t? t comes from the exponential function. So this is the exponential function associated to this lambda. And then t inverse is the exponential function corresponding to this lattice pi bar times a where pi bar is this normalizing factor. This is the lattice corresponding to the to the Carlett's module. And it's normalized like this. And so this s is what corresponds to e to the two pi i z in the analytic world. Now e to the two pi i z is usually called q. And these these modular forms are usually written in terms of a uniformizer q. But my q is already reserved for a finite field. So I couldn't call them q. So we call them s. The literature usually calls them s. And you look at this and they look completely and utterly different from what you see for elliptic curves. For elliptic curves, all the even powers appear, right? For elliptic curves you would have like s squared or one and s squared and s to the fourth and s to the sixth and s to the eighth and so on and so forth. But here you have these very wild powers that are polynomials in q. They depend heavily on the base field. And these are sparse series, right? So you see that only a few powers of s appear. And the bigger your base field the sparser they get. This little epsilon by the way is just an anomaly that happens when you're over f2. It's not important what this is. But so here you already see that things are very, very different from the elliptic curve world. These modular forms and modular functions look very, very different from what you see for elliptic curves. Okay, now let's move on to the j function. So you can divide these by raise to the power of q plus one and divide it and then you get this j function. And what do, so here's some examples of j functions for some small q, two, three, five and seven. And again, there's some very interesting stuff going on. So for for elliptic curves your j function well starts with q to the minus one and then you have coefficient 144 and so on and the coefficients grow very rapidly and the whole thing is very, very dense. But look at what happens here, for example, for q equals seven. There's this big gap between s to the zero and s to the five. So somehow this sparseness of g and delta is reflected here. There's there's a whole bunch of things that vanish. Here's another gap from s to the seven to s to the 11. So there's a whole bunch of coefficients that vanish. And not only that the coefficients of j themselves are sparse polynomial. So here, for example, is a polynomial of degree 49, but it only has three terms. Okay, so these things are completely different from from what you see in in in elliptic curve world, the degrees here grow very rapidly, but the polynomials are totally sparse. Okay, so I should mention that we have an algorithm that computes the j function to arbitrary precision. This is the time and space requirement. So if n is if the precision is large and q is small, this is small, this is basically n to the 2.5 and space q n squared. Oh, tilde means here I suppress log factors. And we have this implemented in sage. And because we're working in the non-archimedean world, it's really nice, you can exactly predict the precision and compute this thing up to this precision. And we use this algorithm to compute modular polynomials. So for this, let's move on to the nth modular polynomial. The nth Drainford modular polynomial is defined completely analogous to how it's defined for elliptic curves. So it's a polynomial in x, and it depends on a J invariant. And it's the minimal polynomial of J of NZ over this function field here, C infinity adjoint J of that. So this is exactly the same definition. And it satisfies some very similar properties. So the coefficients are power series in s, because J of z and J of NZ have preserved series expansions in s. So they're power series in s. If you plug in another J invariant for x here, you get zero if and only if the corresponding J invariants or Drainford modules are n isogenous. And then it's a point, if you look at it as a polynomial in two variables, then it has coefficients in a. So the coefficients are polynomials in t. It's symmetric in x and y. These are the leading terms. And here this power n of n is this. And what does it mean if I write down the absolute value of a polynomial? Remember our n's and p's and everything are now polynomials? Well, this is just q to the degree. And then in particular, for the prime case, in this case, where n is an irreducible polynomial, it has degree l plus 1. So q to the degree l plus 1. Okay. So here's a small parameterization example again. So you see what this looks like. So q is 3. p of t is this. And this is one of the Drainford modules we had earlier. One of the isogenes we had earlier. This was our t isogeny from this Drainford module to this Drainford module. And so let's look at the modular polynomial. So let's look first at the J invariants of these two Drainford modules. This has J invariant t plus 2. This has a slightly bigger J invariant. And so let's form the modular polynomial with respect to this J invariant here. And it looks like this. It's a degree 4 polynomial. Remember, here our l is linear. It's t. So its absolute value is q, which is 3. And the degree is 3 plus 1. So it's degree 4. So this is a degree 4 polynomial. And the coefficients are polynomials in t. So this is now phi over the finite field world, not the analytic world. And we compute the roots of this polynomial. It has these four roots here. And sure enough, one of the roots is this J invariant of c. Okay. So in other words, if I plug in the J invariant J of p and J of p, you get 0. And this is independent confirmation that these two Drainford modules are indeed t-isogenous, as we said earlier. Okay. Now, how do you compute this? Well, our algorithm, we opted to use the standard classical complex analytic method to compute these modular polynomials because we had all that machinery in place in the literature already. And we wanted to focus on implementation. So we're looking now at the case where n is an irreducible polynomial. And we compute the modular polynomial via its definition symbolically. So you take J of z, a particular J of z, up to a certain precision in the analytic world and J of lz up to a certain precision. And then you form this equation where you write down fiel symbolically. So the coefficients of fiel are the unknowns, and the coefficients of J of z and J of lz are computed. And if you compute these two sufficient precision, then you can recover the coefficients of fiel. So this is precisely how this works. So we worked out the exact precision. Again, when you work in the non-archimedian world, it's really nice. You can work out exact precision. We need to work out the J invariant up to this precision, so q to the 2 degree l plus q to the degree l minus 1. And J of lz, we need to work out to this precision here. And this is a polynomial. So it's going to have powers of J of lz in it and powers of J of z in it. And we need to work out these powers as well to this, to the same precision.  So you can write it in the form matrix times vector equals right-hand side vector where the right-hand side vector is known. The left-hand side vector, the left-the matrix, coincides with the coefficients of J of lz and J of z in its powers. And the vector, the unknown vector, is the coefficients of fiel, and you solve that. And that way, you can compute modular polynomials. And our lofty goal, which we're nowhere near, is to start generating a database of modular polynomials similar to what true Sutherland has for modular polynomials of elliptic curves. And we're maybe epsilon there. And the problem is that just like in the elliptic curve world, modular polynomials are big. They are very big. So here's a very, very small example. So this is, again, over f3. Sort of, it doesn't get much tinier than f3. And this is for the irreducible polynomial t squared plus 1. This has absolute value, t squared plus 1 has absolute value 3 squared, which is 9. And so the degree of the modular polynomial is 10. And here it is. So here are all the coefficients. It starts with x to the 10, y to the 10, and then x to the 9, y to the 9, and so on, all the way down here to the constant coefficients. And these are all the coefficients. And you see that it takes, if you write this out in a regular PDF file, well, this is four pages for this tiny little example. So this is the problem with modular polynomials, that they are big. And so they are not easy to compute. Okay. So let me compare our algorithm to the classical algorithm, complex analytic algorithm for computing modular polynomials. So I'm using, again, O tilde. So I'm suppressing a log factor. And here's the time and space complexity. So the classical analytic method takes out to the 4.5 time. This was originally, Alkes wrote out to the 4, but then there was a bit of discrepancy in terms of size of the coefficients and taking growth rate and to account. And so Charles Lauder later on corrected this to Alta to the 4.5 and space Al cubed. And this is our complexity here. Alta to the 8, Alta to the 6. So when we first got this, we were mortified. I mean, this is terrible. This is just an absolutely terrible result. This is so much worse than what happened with elliptic curves. So I mean, this is multiple orders of magnitude worse. So we were very disappointed. And then we started looking at things a little bit more carefully. And we realized, well, this is more or less as it should be. And the reasons for the discrepancy, and this is why I'm saying that when you start doing computations of these things in the world of Drenfeld modules, you run into these differences where this whole analogy between elliptic curve and Drenfeld modules is simply not true anymore. So the difference is in the growth rate of the coefficients of both the powers of the J function and the modular polynomial itself. So there's a bound on the case coefficient of the I power of the J function in the elliptic curve world. This is essentially square root of K I essentially square root of I is the I is the is the coefficients of J to the I. In the Drenfeld module world, this was bounded by essentially I. So instead of square root of I, it's bounded by I. Now, if you stare at the expansion of the J function, you go like, now, this is like way too bad and bad and bound. It's not QI. It shouldn't be QI, right? It should be something much less. But when you start computing, and this is still true if you compute J to the Q plus one, but when you start dividing by delta, if you start using better bounds, your bounds with this division starts blowing up. And I worked on this quite a while and I tried to improve this bound and was unable to do it. I still think it's a terrible bound, but this is the bound that you can get. Now, even more interesting is that the coefficients of the modular polynomial itself behave differently. There's a well known result by Paula Cohen who proved that the largest coefficient of the classical modular polynomial, alpha modular polynomial is basically bounded by six L log L or grows as six L log L. It's asymptotic to six L log L. But for Drenfeld modules, the growth rate is between essentially L and L cubed. And L is actually false. If you do computations, for example, even just for linear polynomials L, it suggested a growth rate of L squared. So they don't grow like L. They grow like L squared. They simply grow faster than you have in the elliptic curve world. And so there is no way you can ever get this complexity, right? It's just not true. The complexity is just not true. The asymptotic complexity is just not true. And you expect to get a significantly worse result. But maybe you shouldn't get as bad as L to the eighth and L to the sixth. Maybe we should have gotten L to the seventh. I'm not sure. But certainly you get something that is significantly worse by multiple orders of magnitude worse. Also, this complexity does not take into account any of the sparseness. So we are treating these as if everything was like completely dense, which is actually not true. So I think especially the space complexity is actually a vast overestimate. And then we try to work something with how do you estimate, you know, sparse polynomials and stuff, and it becomes a hugely messy analysis, and we were unable to do this. So this is really not so easy. So this is what we have. Okay. So that's the algorithm. Right. So a few words about what we're doing currently. The state-of-the-art algorithm for finding classical modular polynomial is not this one. It's an algorithm due to Broker-Lauder-Sutherland from 2011. And it uses some very different ingredients. And these individual ingredients have to be partially developed for the world of dense-art modules. The first thing is the Hilbert-Class polynomial. The Hilbert-Class polynomial is the polynomial, all of whose roots are the J invariants that have complex multiplication by some fixed order, by the same order O. And it has integer coefficients. And the algorithm to compute, there's an algorithm for computing the Hilbert-Class polynomial due to Sutherland also from 2011. And it's essentially the complexity, time and space complexity, is the square root of the discriminant or the absolute value of the discriminant. And that's the size of the coefficients. So you really can't do any better. And so this has to be developed for Drinfeldt modules. And there is some analytic theory there for the J function, but you don't find the term Hilbert-Class polynomial anywhere in the literature. So we're working on that. So the second ingredient is the so-called isogenic graph. The isogenic graph has as vertices the J invariants and as edges the L isogenes. It's an almost L plus one regular graph, except for some degree one vertices. And the ordinary components are volcanoes. And I'll show you in just a moment, you have probably seen pictures of volcanoes. They have these beautiful, regular looking graphs. And this all holds, sorry, this all holds in the world of Finfeldt modules as well. And in fact, we have an algorithm to generate L isogenic volcanoes. So Sage lets you generate L isogenic volcanoes for elliptic curves and draws them nicely. We have an algorithm for Drinfeldt modules, but we don't have a drawing program associated. Okay, so we have an algorithm. But again, it's not state of the art. And then it uses the Chinese remainder theorem. It basically computes this modular polynomial modular bunch of suitable primes. And suitable here has a very good meaning about splitting and so on. I don't want to get into that. And then the Chinese remain this. And there's time and space complexity for that algorithm is L cubed. So the Broker-Sutherland algorithm has complexity L cubed. The classical analytic method has L to the 4.5. And with joint with my PhD student, Edgar Pacheco-Castan, we're currently adopting that method to Drinfeldt modules. And we will almost certainly not get L cubed. Well, we might, but I don't know, maybe we will. Okay. Here are some pictures of volcanoes. So here is, so we're looking at the L isogenic graph. The vertices are Jane variants. The edges are L isogenes. In this case, this is over Q equals three and L is equal to T. And this is one component. This is a highly disconnected graph. But this is one component. And this is a component that contains this Jane variant. And you see what they look like. So this is a volcano. In this case, the crater is just, is degenerate. That's one vertex. But then there's all these very nice, regular looking trees hanging off of here. They're all complete. All the leaf vertices are in the same level and so on.  It's the same for gentle modules. Okay. So here's another example. This volcano actually has an actual crater. It has six vertices, but it's a very short, not very high volcano. So it's only high one and it has hanging off of these stubby little trees. Here we have, this is for a T squared plus T plus two isogenes. So for Q equals three, this has degree nine, degree nine plus one is 10. So the valency here is 10. So each of these neighbors here has two neighbors in the, each of these vertices has two neighbors in the crater and then eight hanging down. Here's another example. That's an aerial view. So here this is again a T isogenes. So the valency is four. The crater has three vertices here. And then it has, each vertex has these two isomorphic trees hanging down. So we can compute these things. Okay.  So we have the machinery to do this and we have the machinery to traverse these, these levels too. Okay. So some other methods that we're looking at for sort of future work, there's another module of polynomial algorithm due to anger, but its space requirements are rather prohibitive and they might even be worse for turns out modules. Maybe not because our things are sparse, but I don't know it's worth looking at because it uses a lot of symbolic computation and symbolic computation works particularly well for turns out modules. There is an algorithm in the state of the arts for computing and the morphism rings of ordinary elliptic curses due to be saw in Southern and again from 2011. These boys were busy in 2011. And here what it does. So you look for the correct order in the isogeny volcano. So you look, so all the vertices at the same level have complex multiplication by the same order. And so you're looking for that level. And the standard method, cold method traversed basically found path sort of in this isogeny volcano and look for it there. This algorithm determines much of that via smoothness testing of relations and class groups. And as a result, it's supexponential. It has the same complexity as class group computation, whereas cold algorithm and our algorithm are exponential. This almost certainly works, except it's not always going to be supexponential because class group computations are only exponential if the genus is large compared to the finite field. So if we're working with orders over a small field fq and the conductors have large degrees, then we might get supexponential complexity. Otherwise, it's going to be exponential for sure. And then of course, there's the whole world of super singular genus modules that we have not yet looked at, computing the isogeny graphs, computing the morphism rings, and etc, etc. So just a reminder what happens in the world of elliptic curves, the isogeny graph over fp squared, all the super singular curves are defined over fp squared. It's actually a Ramanujan graph. It's not a volcano. It's this sort of expanded graph. When you restrict to super singular elliptic curves defined over fp, you get a subgraph that's a collection of stubby little volcanoes, volcanoes of height zero or one. And the structure of these things was described very nicely in this multiple author paper in 2019, where they describe the structure exactly and how these things are situated in the isogeny graph and so on. So very nice. We expect very, very similar behavior for two dwindle modules, but we haven't even touched the super singular case yet. And I think that's all I want to say. I'm going to leave you with a nice, sorry, I didn't mean to go to that.  This is an isogeny graph for elliptic curves. This is the two isogeny graph over f10 to 1049. This was generated and drawn with sage by caranoid. This is not the whole thing. There's a whole bunch of isolated vertices missing. So we only drew the things that aren't isolated vertices.  So here's a beautiful volcano. Most of them are not very interesting, but you get some volcanoes. So I think that's all I want to say. So that's the progress we've made so far on dwindle modules. And I'm happy to take questions.


Hi and welcome to the session. Today we will learn about Graphical Representation of Cumulative Frequency Curve. First of all let us learn to draw cumulative frequency curve as a dive of less than time. We will understand this with the help of an example. So here we are given scores obtained by the students of a class and the frequency corresponding to each class interval. Now to draw the cumulative frequency curve or a dive of less than time we will make the cumulative frequency distribution of less than time. So here the scores for the class interval 0 to 10 will be less than 10. For class interval 10 to 20 it will be less than 20 and so on. Now the cumulative frequency for scores less than 10 will be 5. For less than 20 means scores 0 to 10 and 10 to 20 so it will be 5 plus 7 that is 12. Now it will be 12 plus 9, 21, 21 plus 5, 26, then 26 plus 6, 32, 32 plus 8, 40 and 40 plus 10, 50. Now the points 10, 20, 30 and so on and the upper limits of the class intervals. So let us draw the graph by taking upper limits on x-axis and cumulative frequency on y-axis like this. Now we will plot the points of ordered pairs of upper limits and cumulative frequencies corresponding to each upper limit. So our first ordered pair will be 10, 5. So let us plot the point 10, 5. So this is the required point. Now the next point is 20, 12. So it will be over here. Let us plot all the points. So we got all the points to get the curve. So this curve is less than or jive, a cumulative frequency curve of less than time. Now let us move on to cumulative frequency curve or jive of more than time. We will draw this curve for the same data. So here this course for a class interval 0 to 10 will be more than or equal to 0. For this it will be more than or equal to 10. Same way we will get all of them like this. Now here n is equal to 50. So the cumulative frequency for this will start from 50 as this course more than or equal to 0 means scores from 0 to 10, 10 to 20 and so on up to 70. So it will include all the frequencies of all the class intervals. So it will be 50. Now more than or equal to 10 means we will exclude the scores from 0 to 10. So we will exclude the frequency 5 from the cumulative frequency 50. So it will be 50 minus 5, 45. Next will be 45 minus 7 that is 38, then 38 minus 9, 29, 29 minus 5, 24, 24 minus 6, 18 and lastly 18 minus 8, 10. Now 0, 10, 20 and so on these values are the lower limits of the class intervals. So to draw the graph we will take these values on the x-axis that is the lower limits and cumulative frequency on y-axis. Here we will draw the graph. Now we will plot the points of ordered pairs, lower limits and cumulative frequency corresponding to each lower limit. So our first point will be 0, 50. So let us plot the point. So we got all the points. Now we will join them by freehand to get the graph, the median from more than oji. We already know that n is equal to 50. So n upon 2 will be equal to 25. Now we will locate n upon 2 that is 25 on the y-axis. So here we have line parallel to x-axis to cut the graph. So this point that is 38 is the median for the given data that is less than oji and more than oji on the same graph sheet. So let us draw the two graphs on the same graph sheet. So here we have drawn both the graphs that is less than oji when more than oji on the same graph sheet comes intersect. So this is the point. Now from this point we will draw up to get the median. We have learnt how to draw cumulative frequency curve or oji of less than type, cumulative frequency curve or oji of more than type and how to find out median from cumulative frequency curves. With this we finish this session. Hope you must have understood the concepts. Nice day.