text:
Q: When would a compiler choose StringBuffer over StringBuilder for String concatenation I was looking at the String Javadoc when I noticed this bit about String concatenation:

The Java language provides special support for the string
  concatenation operator ( + ), and for conversion of other objects to
  strings. String concatenation is implemented through the
  StringBuilder(or StringBuffer)

From the Java 8 JLS 15.8.1, it is a choice given to the compiler (emphasis mine):

An implementation may choose to perform conversion and concatenation
  in one step to avoid creating and then discarding an intermediate
  String object. To increase the performance of repeated string
  concatenation, a Java compiler may use the StringBuffer class or a
  similar technique to reduce the number of intermediate String objects
  that are created by evaluation of an expression.

I made a small program to see what it compiles down to
public class Tester {

    public static void main(String[] args) {
        System.out.println("hello");
        for (int i = 1; i < 5; i++) {
            String s = "hi " + i;
            System.out.println(s);
        }
        String t = "me";
        for (int i = 1; i < 5; i++) {
            t += i;
            System.out.println(t);
        }
        System.out.println(t);
    }
}

And the output when running javap -c Tester shows that StringBuilder is being used:
Compiled from "Tester.java"
public class Tester {
  public Tester();
    Code:
       0: aload_0
       1: invokespecial #1                  // Method java/lang/Object."<init>":()V
       4: return

  public static void main(java.lang.String[]);
    Code:
       0: getstatic     #2                  // Field java/lang/System.out:Ljava/io/PrintStream;
       3: ldc           #3                  // String hello
       5: invokevirtual #4                  // Method java/io/PrintStream.println:(Ljava/lang/String;)V
       8: iconst_1
       9: istore_1
      10: iload_1
      11: iconst_5
      12: if_icmpge     48
      15: new           #5                  // class java/lang/StringBuilder
      18: dup
      19: invokespecial #6                  // Method java/lang/StringBuilder."<init>":()V
      22: ldc           #7                  // String hi
      24: invokevirtual #8                  // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      27: iload_1
      28: invokevirtual #9                  // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;
      31: invokevirtual #10                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
      34: astore_2
      35: getstatic     #2                  // Field java/lang/System.out:Ljava/io/PrintStream;
      38: aload_2
      39: invokevirtual #4                  // Method java/io/PrintStream.println:(Ljava/lang/String;)V
      42: iinc          1, 1
      45: goto          10
      48: ldc           #11                 // String me
      50: astore_1
      51: iconst_1
      52: istore_2
      53: iload_2
      54: iconst_5
      55: if_icmpge     90
      58: new           #5                  // class java/lang/StringBuilder
      61: dup
      62: invokespecial #6                  // Method java/lang/StringBuilder."<init>":()V
      65: aload_1
      66: invokevirtual #8                  // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      69: iload_2
      70: invokevirtual #9                  // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;
      73: invokevirtual #10                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
      76: astore_1
      77: getstatic     #2                  // Field java/lang/System.out:Ljava/io/PrintStream;
      80: aload_1
      81: invokevirtual #4                  // Method java/io/PrintStream.println:(Ljava/lang/String;)V
      84: iinc          2, 1
      87: goto          53
      90: getstatic     #2                  // Field java/lang/System.out:Ljava/io/PrintStream;
      93: aload_1
      94: invokevirtual #4                  // Method java/io/PrintStream.println:(Ljava/lang/String;)V
      97: return
}

I've looked at a handful of questions that tell the story that StringBuilder is generally faster because of synchronization in StringBuffer, and that is substituted for these string concatenations:

*

*When is StringBuffer/StringBuilder not implicitly used by the compiler?

*What happens when Java Compiler sees many String concatenations in one line?

*Java: String concat vs StringBuilder - optimised, so what should I do?

*Best practices/performance: mixing StringBuilder.append with String.concat

*StringBuilder vs String concatenation in toString() in Java

*StringBuilder and StringBuffer
So, considering the things I've read that show that StringBuilder is generally the better choice leads me to wonder a couple things:

*

*When and why would a compiler choose to use StringBuffer instead of StringBuilder?

*Wouldn't it make more sense if the compiler had the choice of using any AbstractStringBuilder implementation?

A: The specification's wording you have cited origins from older specifications. The simple answer is, before Java 1.5 aka Java 5 there was no StringBuilder. So older compilers didn't have to choose between StringBuffer and StringBuilder and the specification at that time simply recommended using what is available.
With Java 5, StringBuilder was introduced which doesn't use synchronized methods which is perfect for the use case of String concatenation as that's a pure local operation. So for compilers targeting 1.5 or higher, there is a choice (which is still covered by the specification's words "or a similar technique") and they will choose StringBuilder as there is no reason for using StringBuffer when targeting 1.5 or higher.
Starting with Java 9, there is a new technology using an invokedynamic bytecode instruction with a bootstrap method from the StringConcatFactory class, but it's still covered by the specification's words "or a similar technique".

A: It depends on the compiler implementation (javac is not the only compiler). However, there is never a good case for using StringBuffer over StringBuilder for these types of uses. It is always a single use narrowly scoped object where the synchronization of StringBuffer provides no functional value.
So the short answer is that no compiler /should/ ever use StringBuffer.

redpajama_set_name: RedPajamaStackExchange


Planning a safari can be a daunting prospect for a first time or even seasoned traveler. Africa is not your 'run-of-the-mill' vacation spot, with so many different types of safari and choices of destination on offer, making it is easy to understand why planning your safari could be difficult.
That's why the biggest benefit you'll most likely feel from our service is peace of mind.
Peace of mind that your once in a lifetime trip will go off without a hitch.
Because we believe that you deserve that, everyone does.
Our business is a family of seasoned Safari Experts ensuring your trip is planned perfectly and runs smoothly - all at no cost to you (but more on that later).
How do we make sure your trip is perfectly planned?
First off, we take the time to understand what you want from your safari experience.
Romance? Family time? Pure adventure?
Whatever you're looking for, rest assured we will puzzle it out!
We get to work, so you don't have to.
Your dedicated Africa expert sorts through hundreds of lodges and experiences in each country that you'd like to visit and tailor makes a trip that's just right for you.
In no time you'll have gone from having a vague idea of what your trip will look like to receiving a few detailed digital itinerary options to choose from.
All that troublesome planning has been taken out of your hands and placed into those of an expert.
We have it covered. For free (more on how later).
How do you know you can trust us with all of this planning?
Each year our experts are given the opportunity to visit various corners of Africa, to gain first-hand knowledge and a better understanding of what each destination has to offer - accommodation, transport, cuisine and experiences.
The connections our Africa experts make are the keys to providing you with a memorable vacation.
Our 200,000 (and counting) happy travellers over the years also give you something to go by.
Then am I on my own when I travel?
Never. The very same person that planned your trip, booked your flights and arranged that special champagne breakfast, will be on call throughout your entire trip.
That Africa expert will be calling ahead before you arrive at every destination to ensure that each hotel, dietary request and excursions are reconfirmed - we will ensure that your trip is flawless.
You'll also have a direct line to your Africa expert in case anything goes wrong.
We'll be there for you no matter what.
How do you know you can trust us with your money?
These associations guarantee certain standards and recourse.
This means you can enjoy financial peace of mind with complete financial protection.
Any money paid to us also receives a third party guarantee.
We get paid for the work we do, but not by you.
We earn our money through commission from the suppliers that we work with.
We help reputable lodges, transfer companies, flight operators and tour operators get business, and so they're quite fond of us.
These relationships with suppliers help us to get you the best prices available.
We leverage that ability to offer you a price guarantee - so if you find a better price than ours, let us know and we'll match it.


text:
About Tiptoes
Class Times and Locations
Tina lives in Surrey and started her dance training at the June White Academy of Dance, before training at The BRIT School of Performing Arts in Croydon. Where she studied singing, dance and drama.
Theatre credits include 'Jim Davidson Live' at the Cambridge Theatre London, 'Night of a 100 stars' at the London Palladium, 'Dick Whittington' at the Theatre Royal Windsor. Tina has toured the world in the Irish Dance Show 'Spirit of the Dance' and sung and danced on UK tours of 'Forever in Blue Jeans' and 'Showstoppers'.
Her television appearances include 'The Bill', Agatha Christies 'Sparkling Cyanide', 'Dream Team' and as a dancer on Robbie Wiliams' 'No Regrets'. Film experience includes Ken Russells 'Treasure Island' on Channel 4.
Tina performed at the 2012 Olympics closing ceremony alongside Jessie J, Tinie Tempah, Taio Cruz, and Fat Boy Slim.
tina@tinarobinsondance.co.uk
© 2018 Dave Robinson Design

redpajama_set_name: RedPajamaCommonCrawl


text:
Superintendent Sweat's Graduation Speech
Paul Sweat addressed 404 McKay School graduates.
In 1877, a 17-year-old young man by the name of Benjamin Cluff Jr. was working as the city librarian in the small town of Coalville, Utah, located 65 miles west of where we are this morning. Young Benjamin, who had grown up the son of a carpenter and farmer, had felt the pull to do something different than his father. He was excited for the opportunity to become the librarian and delighted at the thought of perusing all the books the library held.
After working in this capacity for a time, growing his thirst for knowledge to even greater heights, Benjamin packed a small bundle of clothing and an umbrella and set out on foot for the recently established Brigham Young Academy in Provo. His father, who had established a good farm in Heber Valley, offered Benjamin one-third interest in that farm if he would stay and help run it—this was after he had left Coalville but before he had begun his studies at the Academy. To this generous offer Benjamin replied, "If you release me to go to school, I will never ask you for assistance."
Keeping to his word, Benjamin not only enrolled as a student, but also took a job as a custodian at the Academy to make ends meet.
After some time as a student, Benjamin traveled east for a higher education at the University of Michigan. After completing his degree, he travelled back home to Utah, returning to the Academy in 1892 as a member of the faculty. Later, he was named the third principal of BYA. Under Benjamin's direction and leadership, Brigham Young Academy officially became Brigham Young University in 1903, making Benjamin Cluff Jr. the first president of this magnificent university. This remarkable life-path that starts with Benjamin as the school custodian and ends with him as the university president is not just for the history books. Similar paths are present today.
You, like Benjamin Cluff Jr., have been led away from the many other career paths you could have chosen to that of becoming an educator. He had a great work that he was meant to accomplish. Benjamin Cluff Jr.'s rejection of his father's offer of one-third interest in the family farm not only transformed his life but the lives of thousands of people, including you and me, as graduates of this university. The most exciting part about that notion is the tremendous journey each of you has before you—a path that is replete with opportunities to change the lives of hundreds and even thousands of students for good.
I love educators. I love working with them, and I love watching them work with students. One of the primary reasons I love them is for the strong, ever-present attitude of self-efficacy. Yes, you as educators believe in your ability to do good and believe in your ability to change the lives of children. You believe in your own self-efficacy, or you wouldn't be here. As I look out across these rows of graduates, it gives me goose bumps to consider your cumulative potential to do good and to change the lives of so many children who will end up in your classrooms.
You are about to become a part of the greatest institution this country knows: K–12 education! Public education gives every student throughout the land the opportunity to improve his or her station in life.
This work will not be easy; it will be the most difficult work you have ever done. It will also be the most rewarding.
You are well prepared! I know this firsthand; I know that you are the best of the best. I have a message for each of you today: Go forth with confidence!
To help me properly convey this message, I turn to the words of Elder Jeffery R. Holland, a current Apostle and the ninth president of this university. In 1999, on this campus, he delivered a devotional entitled "Cast Not Away Therefore Your Confidence." The title itself—words spoken by the Apostle Paul—conveys a strong message, a message that the leaders of the Church, the prophet, and even our Savior and Heavenly Father want us to go forth with confidence; they want you as new teachers to trust in your abilities, your training, and your instincts.
I can assure you, the superintendents, principals, fellow teachers, and students whom you will work with are excited to have you. We welcome your youthful exuberance, your penchant to try new things, and your willingness to work together on a team. We also welcome the fact that who you are as a person will become part of the school culture you are about to join.
The BYU–Public School Partnership that my district, Wasatch County School District, is a part of has five commitments that we hold together as a group. They are
civic preparation,
engaged learning,
equitable access for all students,
stewardship in school and community, and
commitment to renewal.
We as administrators strive to provide an organizational framework that will enable you as teachers to actually do this very important work. Access to knowledge and engaged learning are important concepts for us. For you, it will be a big part of your daily work—and often a daily struggle. Yes, those first days and first years can be extra tough. Teaching is a difficult profession, but like most things in life, the greater the struggle, the greater the reward.
Sadly, many trained educators choose to leave the profession early in their careers. The struggle becomes too great, and they leave before the rewards are evident. I plead with you to stay the course. You are badly needed; the children of America need you. Please remember back to that moment of enlightenment that originally set you on this path. Do not let a difficult day, week, or even year drive you away from what you have spent so much time preparing to do.
Let us return to the words of Elder Holland during his inspired address to the students of this campus. He said, "Don't assume that a great revelation, some marvelous illuminating moment, or the opening of an inspired path is the end of it. . . . There is one who personifies 'opposition in all things,' . . . '[one who seeks] the misery of all mankind.'" Lucifer himself does not want you to be an educator; when the going gets tough, he wants you to doubt your career and drop out.
The example that Elder Holland so eloquently used to demonstrate this point is that of Moses being taken up to an exceedingly high mountain where he saw God face to face, and the glory of God was upon him. The scripture says that Moses "beheld the earth, yea, even all of it; and there was not a particle of it which he did not behold, discerning it by the spirit of God" (Moses 1:27). Elder Holland referred to it as one of the greatest accounts we have of any prophet's experience with divinity. What happened next seems unbelievable. Lucifer himself showed up, demanding that Moses worship him (Moses 1:12). The two had quite an exchange, but of course Moses wasn't having any of it. If Lucifer was so bold to approach Moses after he had just seen God, it is easy to understand that he will certainly approach us before we are about to accomplish great things, even after we have made important life decisions, even after we have received personal revelation and witnessed the opening of an inspired path before us.
Elder Holland went on to remind us, and I quote, "We cannot sign on for a moment of such eternal significance and everlasting consequence without knowing it will be a fight—a good fight and a winning fight, but a fight nevertheless." Then comes this tremendous counsel again from the Apostle Paul, found in Hebrews: "Cast not away therefore your confidence, which hath great recompence of reward. For ye have need of patience, that, after ye have done the will of God, ye might receive the promise. . . . If any man draw back, my soul shall have no pleasure in him. But we are not of them who draw back unto perdition" (Hebrews 10:35–36, 38–39).
Graduates, just like Benjamin Cluff Jr., you have an important life's work awaiting you. Yes, even great things to accomplish and many young lives to influence for good. But please know that "it will be a fight—a good fight and a winning fight, but a fight nonetheless." "Cast not away therefore your confidence. . . . We are not of them who draw back."
Thank you, and may Heavenly Father bless you and your career in education.
Writer: Paul Sweat


text:
The Athabasca River and Mount Kerkeslin, near the town of Jasper, Alberta (Photo: Glowing Earth Photography/Getty Images)
Gear Tools & Tech
Who Decides What Goes on a Map?
Maps made by Native Land Digital—which are now available on Gaia GPS—show Indigenous territories, languages, and treaties across every continent
Abby Levene
In 2015, Victor Temprano protested a pipeline project in British Columbia. Standing alongside Indigenous peoples who steward that land, Temprano asked himself whose lands the project would impact. He started mapping the pipeline paths, oil spills, and protests across Canada.
Temprano's quest to close the loop on that question opened the floodgates. His work of mapping Indigenous relations to land expanded, leading him to create Native Land Digital in 2018. While Temprano is a settler from Okanagan territory with no previous experience in mapmaking, Native Land Digital has blossomed into an Indigenous-led not-for-profit organization with a digital map depicting Indigenous territories, treaties, and languages, all presented on a global scale. In fact, its map now serves as the de facto resource for understanding Indigenous relationships to land.
"It's an educational tool for people to know that there's a history in a place that is thousands and thousands of years older than European history," says Christine McRae, Native Land Digital's executive director who belongs to the Crane clan of the Madawaska River Algonquin people.
The interactive map contains a trove of crowdsourced information about Indigenous peoples all over the world, including Indigenous territories, languages, and treaties across every continent. Native Land Digital receives over 700,000 visits on holidays like Thanksgiving, National Indigenous Peoples' Day, and Canada Day, and it inspires complicated, needed discussions.
By prioritizing Indigenous knowledge and connections to land on its digital map, Native Land Digital invites us to ask: What does it mean to attach a name to a landscape? While that answer remains relatively straightforward from a Western-colonizer perspective, that's not the case from an Indigenous one, as Temprano has learned.
Native Land Digital's territories map shows an incomplete understanding of Indigenous lands. (Photo: Native Land Digital)
When you open the Native Land map on Native Land Digital's website, on the Gaia GPS website, or in the Gaia GPS app, it's immediately obvious that it looks very little like ubiquitous Western maps. The same landmasses appear, yet they're covered in overlapping shapes rather than rigid country and state lines.
You can choose from three maps: Indigenous territories, languages, and treaties. While you can turn Western boundary markers on, that's not the default setting. Instead of a jigsaw puzzle, you see a watercolor painting.
"We don't include those [Western] boundaries on the map on purpose, so that we can understand that the colonial way of understanding the world is not the only way," McRae says. "There is a much older understanding of land, territories, waterways, and so on."
Maps are such ingrained fixtures of Western culture that it's easy to think of them as immutable objects of truth. But in truth, maps come closer to paintings than photographs. Field measurements contain errors in accuracy and precision. And no map can depict all physical, biological, and cultural features for even the smallest area.
Beyond inaccuracies, maps represent one viewpoint—that of the mapmaker or their patron. A map can display merely a few selected features, usually portrayed in highly symbolic styles and according to some kind of classification scheme. All maps are estimations, generalizations, and interpretations of true geographic conditions. What a cartographer chooses to include or leave out, even boundary lines themselves, reflect deeply rooted norms and a subjective valuation of both what is important and what is reality.
Maps show power, and they confer power. They reflect the way those in power understand the world around them. This truth becomes evident when we consider a map of the United States, with its familiar rectilinear boundaries to the north and south and patchwork of state borders spanning the landmass. This map represents one viewpoint: that of the colonizer. And its current depictions suppress the viewpoints and realities of the thousands of tribes who first inhabited this continent and continue to call this land home.
The Native Land map subverts the colonist map, taking those same geographic images of landmasses with which we are so familiar and painting them with entirely different colors—quite literally.
"We understand that we can't own land," McRae says of Indigenous peoples. "We are in relation with the land. I'm not just seeing my yard as a yard, but rather the trees that are in this shared space are relations. The soil under my feet, the plants that grow here, they are also my relations."
Yet McRae acknowledges that she also lives in the Western world. "We either have to rent or own if we are so privileged to do so," McRae says. "We must balance these two juxtaposed understandings."
This contestation is manifested in the Native Land map. Western cartography blends with nebulous regions where tribes both lived and live, where languages were spoken and are spoken, and where Indigenous peoples and colonizers formed treaties. While most Western maps represent a certain point in time, Native Land maps represent many pre-colonized points in time. While Western maps provide strict boundaries of ownership, Native Land maps show fluid, overlapping regions for places tribes have called and currently call home.
How Native Land Digitally Created a Community-Based Map
On this map, note how treaties illustrate boundaries. Visit the Native Lands Digital website to see how these borders relate to territory and language regions. (Photo: Native Land Digital)
As a settler born in traditional Katzie territory and raised in Okanagan lands, Temprano wanted to create an invitation to other settlers to learn about whose land they occupy and to start a deeper intellectual and emotional connection in the process. The purpose of the project has since evolved to providing an empowering place for Indigenous peoples to affirm and share their home territories, history.
While Temprano continues to spearhead the technological work, Native Land Digital is Indigenous-led. Native people from around the world comprise the board of directors. An advisory board of both Indigenous and non-Indigenous cartographers also supports the project, along with volunteers who constantly refine the map as they gain more information.
Most Native Land Digital work takes place on the unceded lands of the Musqueam, Tsleil-waututh, and Squamish Nations. The Coast Salish people, to whom these nations belong, have lived along the northwest coast of North America for over 10,000 years. You can learn more about their history by finding them on the map.
Initially, Temprano relied heavily on colonial knowledge to fill in the map. But as the purpose of the project metamorphosed, the sources of information have, too. Now Native Land Digital leans heavily on knowledge gathered from Indigenous communities themselves, via both direct communication and archival sources.
Building community and being in community with Indigenous peoples are at the heart of making this map. McRae says it involves conversations with Native communities, guided by elders, who help to work through each individual situation.
"This map is a platform for Indigenous people to tell stories," McRae says. "It goes back to being community based. If a community has a story it wants to share that will help us represent them on their own terms in the map, we're happy to follow the lead of the community."
Filling in each inch of the map requires gaining local knowledge from each place, in addition to contending with a stream of other considerations, such as Indigenous data sovereignty.
"Some knowledge is sacred—it doesn't go out into the general world," McRae says. "There are stories that remain within the community only. It all depends on community, and permissions to share, and so on. We just provide the platform for those who want to share their stories with the world."
Native Land Digital deals with each situation uniquely and with as much care and empathy as required.
"The deeper history and understandings of Turtle Island (the native term for North America) and other parts of the world differ greatly, depending on which region of the world you're from," McRae explains. "And so we look to regional expertise and we promote that knowledge rather than our own projected understandings of what that colonial history or that Indigenous history might be in other places, particularly those places where we're not from."
Why These Maps Remain Eternally Incomplete
Native Land Digital's languages map remains incomplete, and the locations of languages spoken delineate boundaries. (Photo: Native Land Digital)
Just as one map cannot represent one point in history, Native Land Digital's maps are constantly refined over time. The site doesn't currently offer a print version of a map, to ensure maps can continue to be updated as needed.
In fact, evolution is one of the tenets this project, as reflected in the disclaimer that pops up when you open the map:
"This map does not represent or intend to represent official or legal boundaries of any Indigenous nations. To learn about definitive boundaries, contact the nations in question. Also, this map is not perfect—it is a work in progress with tons of contributions from the community. Please send us fixes if you find errors."
Embracing imperfection drives this form of storytelling. Gathering information for the map is a volunteer-led, crowdsourced process. It's not bound by rigorous academic requirements. Think of it as an Indigenous Wikipedia of sorts, whereby information is communicated visually through the map. This allows Native Land Digital to be updated efficiently, yet McRae says that the site is extremely hesitant to ever declare a map to be entirely accurate.
Its principle map remains eternally incomplete. Currently, Native Land Digital does not contain information for some areas of the world. This is not because Indigenous peoples, territories, languages, and treaties do not exist on these lands. Rather, there is still work to be done. The "work in progress" moniker also signifies that Native Land Digital will update information as needed. It sometimes uses colonial naming practices. The board makes hard decisions regarding who belongs on the map and where, which inherently involves rejecting inaccurate or insufficient sources. Ultimately, this is a human process and mistakes get made, which have real-life consequences of hurting others.
The question of who gets to say who belongs on the map remains an open question.
"We make a very conscious effort to not dictate someone's existence," McRae says. "Maps have been used as a colonial tool to erase people off of land. We want to do the exact opposite. That ties back into why this project is community based. If anything's missing, or if anything needs to be changed, we listen to a community and what their needs are so that they can represent themselves on the map."
Reciprocity is important to Native Land Digital. Collecting information for mapping is reliant on community, and as an open-source platform, anyone can use the map's information as long as they do so responsibly and ethically. In fact, McRae hopes that in the future her nonprofit can support Indigenous communities in their own mapping projects.
Moving Beyond Land Acknowledgements
The Native Land map in Gaia GPS shows whose land you're on while out in the field. (Photo: Gaia GPS)
The Native Land maps invite Indigenous peoples to share their stories and settlers to learn them. For adventurers, looking up and acknowledging whose land you're on can be a logical first step to pay respect and discover more about a new place. McRae emphasizes that this is only the first of a lifelong journey to gain a deeper understanding and connection to the land. The next step, she says, is for map users to build a relationship with the nations on whose land they stand.
"Our hope is that the map is a starting point for conversation and to build relationships," McRae says.
This intention is embedded into the map itself. Examine the three maps to see how they relate to each other and how they seemingly don't. Focus on a particular area to get a clearer view of the tribes represented there. By clicking on a place, you can find links to the Indigenous nations who call that land home. From there you can learn a little of the local language, dive into history, and nurture the seeds of consciousness that the map plants in your mind.
In addition to learning about Indigenous peoples and their land, the Native Land map invites users to learn from the land itself. The Native Land Digital Teacher's Guide asks users to consider the land as pedagogy, a form of learning:
"Looking at the land from an Indigenous perspective means understanding that the land is a living being. This understanding both gives us insight into and increases our awareness of how we treat and interact with the land. Indigenous people hold the land up as both a living being and as a teacher. 'Living lightly' on the land has always been emphasized as a means of minimizing environmental impact and ensuring a continued quality of life for future generations to come," the guide puts forth.
For McRae, viewing the land as a relation is a kind of North Star as we adventure through places both new and familiar. She asks, "How must you behave to be in good relation to the land and also to the people whose land that you are on?"
This article was written and edited on the lands of the Ute, Cheyenne, and Arapaho peoples.
Lead Photo: Glowing Earth Photography/Getty Images
The Range of Light National Monument Would Link Yosemite and Sequoia–Kings Canyon National Parks
By: Alison Osius
A Snowboarder Left the Scene of a Deadly Ski Crash. His Punishment? A $500 Fine.
By: Isabella Rosario
A Longtime Surf Competition Went Virtual During the Pandemic. Organizers Kept It That Way.
By: Jen Murphy


It's been an exciting week at Bartelt! Part of our crew has been in St. Cloud, Wisconsin, disassembling an 1800s dairy barn. With the popularity of reclaimed materials, this barn has a lot to offer – beams, doors, hardware, and history! Here are some photos!
This entry was posted in In the News, Tips and tagged 1800s Barn, Barn Beams, Barn Boards, Barn Doors, Barn Hardware, Barn Wood, Barnwood, Dairy Barn, Delafield Remodeler, Hand-Hewn Barn Beams, Hand-Hewn Beams, Home Improvement, Milwaukee Remodeler, Old Barn, Old Barn Beams, Old Barn Boards, Old Barn Wood, Old Barnwood, Reclaimed Barn Beams, Reclaimed Barn Boards, Reclaimed Barn Doors, Reclaimed Barn Wood, Reclaimed Barnwood, Repurposed Barn Beams, Repurposed Barn Boards, Repurposed Barn Doors, Repurposed Barn Wood, Repurposed Barnwood, Rustic Barn Beams Rustic Beams, Southeastern Wisconsin Remodeler, Waukesha Remodeler, Weathered Barn Wood, Weathered Wood, Wisconsin Barn, Wisconsin Barn Beams, Wisconsin Barn Doors, Wisconsin Barn Wood, Wisconsin Barnwood, Wisconsin Dairy Barn, Wisconsin Remodeler on April 2, 2015 by amanda.


Lady Alethea Sutherton, main character in Camille Elliot's regency romance Prelude for a Lord, is a social misfit, not only because of her suitorless old maid status, but because of her musical interest in the violin which is thought entirely unladylike.
For her part, Alethea has long since ceased to care, much to the chagrin of Aunt Ebena. Alethea has come to Bath to stay with her aunt after cousin Will kicked her out of the family home. Now she is living for the day she reaches her majority, gains her inheritance, and can flee England to the musically rich continent.
But the appearance in Bath of Baron Dommick, a musician she admired from her own disastrous season in London eleven years ago, and society's demands soon have her attending balls and hobnobbing with members of a male string ensemble. Meanwhile she senses she is being watched, followed, and then is approached by a succession of sinister men who demand she sell her violin.
Main male character Baron Dommick's reputation has been compromised by the effects of war. Despite that, he feels driven to ensure that his sister Clare's upcoming season in London will be a success. This means making the right social moves in all departments. He is attracted to Alethea but could her strong personality impede his goal? And what if she should discover the real self he hides under that handsome exterior?
Elliot has combined compelling characters (including a list of who the various characters are, their many names and how they're related to each other) with a circuitous plot that includes solving the mystery of Alethea's violin.
"Then another crash, something heavy and wooden dropping to the floor accompanied by a tinkling descant of shattering pottery" – Kindle Location 2613.
Compelling themes include an exploration of how women in the regency era are treated and whether God cares for individuals—an issue especially for Alethea who feels as if God dislikes her, seeing as how He never came to her aid when her father, brother, and cousin abused her. Questions at the end of the book encourage readers to discuss, personalize, and apply what they've read.
Prelude for a Lord is a combination I found irresistible. It's a tale I would hazard even Jane Austen would love.
I received Prelude for a Lord as a gift from the publisher for the purpose of writing a review.


text:
How Soon Do We Need to Show Genre in Our Novels?
A reader asked (in reference to a comment I made in a Real Life Diagnostic)...
This is something I'm not sure I understand. If you pick a book off the shelf, you'll know it's sci-fi or fantasy or what have you by the section in the bookstore, the blurb, and possibly the cover. So do we really need to throw obvious genre flags into the first three paragraphs? I get that we want to give a sense of setting right away, but to me it doesn't seem necessary that the setting meet our expectations for genre right off the bat. That in itself would make me want to keep reading.
Short answer: No, you don't need obvious genre flags in the first three paragraphs. Or even the first three pages. Except on those occasions when you do need it.
Long answer: This is one of those "it all depends on the situation" questions.
For many novels, readers are going to know the genre before they start reading since they likely bought it because it was that genre. Or they know the author always writes a certain genre. They won't need to be told it's science fiction or a western or historical fiction.
Others will come across the novel through others means and will have no idea what genre it is. They'll borrow it from a friend, pick it up at a yard sale, find it stuck in an old backpack, or--more common these days--it's just one of hundreds in a long list of e-books on their reader.
These are the folks who most likely need those extra clues about genre, but there are other reasons why you'd want to suggest the genre.
1. The novel could easily be mistaken for another genre
I have a friend who writes science fiction, but if you don't catch the technology and science references, it has a strong fantasy vibe. She has to work extra hard to make sure readers know they're reading science fiction, not fantasy. I can't tell you how many times she received a "a fantasy world wouldn't have this kind of technology" type comment in her critiques due to this. Readers assumed (wrongly) what type of novel it was based on the first few setting clues they discovered.
If your novel has a similar tone or feel to another genre, and there's a decent chance readers will make incorrect assumptions about that novel that could hurt their enjoyment of the story, it's not a bad idea to slip in a few clues at the start to make sure readers know what genre they're reading.
(Here's more on the different genres)
2. The genre element is small
For some novels the genre aspect is a small part of the story. A touch of magic, a bit of sci fi tech, a small step back in time to the not-so-distant past. It can be helpful to slip in a little genre detail or two early on to let readers know this mainstream-feeling story isn't so mainstream. That way, when something happens, readers won't be jarred out of the story.
This can be especially helpful for historical novels set in a near past, where it might not be obvious that the setting is 1980 or even 1950.
(Here's more on grounding readers in your world)
3. The genre element appears later in the story
Dan Wells's I Am Not A Serial Killer is a great example here. For over half the novel, it reads like any other mystery/suspense. Then out of nowhere comes a fantasy element that's key to the core conflict. Nowhere does the cover copy suggest this element (though it's published by Tor, which is a clue if readers know their publishers). I was able to regroup after this shock enjoy the novel, but a friend was so thrown by it, that it ruined the book for her. She said had she known that going in, she would have been able to deal with it. It was the shock that did it.
If the genre element of the novel is going to be a shock to readers, and that might adversely affect how they see the novel, it might be a good idea to drop a few hints early on so the genre reveal is more of an inevitable "I should have seen that coming" surprise than a "Where did that come from?" shock.
4. It's a different genre from what your normally write
I can still remember the anger of my fellow Stephen King fans when The Eyes of the Dragon came out. It wasn't horror. No one knew what to make of it. Some people hated it--not because it was a bad book (it's quite good), but because it wasn't the typical Stephen King novel they loved to read.
If readers are expecting a certain genre from you as an author, it's nice to let them know right away that you've switched things up on them.
Other reasons you might consider adding a genre detail early on:
1. E-books
E-books are changing how people read. Books are bought or downloaded and they sit in e-readers until read. Unless the book provides "cover" copy in the first few pages, readers don't get a refresher on what it's about and many don't remember why they downloaded it in the first place. Things authors used to take for granted (like readers having a basic idea of the story going in) no longer apply.
If you anticipate a lot of e-book readers for your novel, it's not a bad idea to drop a few hints about both the genre and what the book is about early on. (Or add cover copy in the first page or two)
(Here's more on how important genre is in today's e-books)
2. To set reader expectations
How many times have you heard--or said--this phrase: "It was okay, it just wasn't what I expected." Maybe it's about a book, or a movie, or a TV show, but you went into it with expectations and it didn't live up to that. People judge things based on what they expect just as much as what they see. A title and even misleading cover art can set the wrong expectations.
Jack Campbell's The Lost Fleet series has great covers that make it look like the hero is a ground soldier (complete with battle armor and a big gun), when he's really the fleet's admiral who never picks up a gun. If you go into the series thinking it's going to be about a space marine on the ground fighting battles, you'll be sorely disappointed. Luckily, Campbell has lots of ship and fleet references right off the bat.
If your story might cause readers to expect a certain genre aspect, a few clues early on can make sure they reevaluate their expectations and read the book your wrote, not the one they thought you were going to write.
(Here's more on reader expectations)
And the most important thing...
If you don't want to add genre details early on, don't. It's your book, and you should write it however you feel is best. And remember, "early on" could mean the first few pages as well as paragraphs, so there's plenty of wiggle room if you want it.
If you feel your novel would be better served by adding a few details to ground the reader in the genre right away, then do it. If not, don't worry about it. There are no rules here, so just go with your instincts.
Have you ever read a book that wasn't the genre you expected? Do you prefer to know the genre right away or do you enjoy the surprise?
Looking for tips on planning and writing your novel? Check out my book Planning Your Novel: Ideas and Structure, a series of self-guided workshops that help you turn your idea into a novel. It's also a great guide for revisions!
Janice Hardy is the founder of Fiction University, and the author of the teen fantasy trilogy The Healing Wars, where she tapped into her own dark side to create a world where healing was dangerous, and those with the best intentions often made the worst choices. Her novels include The Shifter, (Picked as one of the 10 Books All Young Georgians Should Read, 2014) Blue Fire, and Darkfall from Balzer+Bray/Harper Collins. The first book in her Foundations of Fiction series, Planning Your Novel: Ideas and Structure is out now.
Labels: genres, writing rules
Thanks Janice. Feel that I could be misleading my readers if I don't give them some clues early on. My first novel was a mystery/thriller, but I'm now working on a series of shorts that are science fiction with elements of fantasy and steampunk... while my supernatural mystery gets edited. Thanks for the pointers.
jenmcjen 7/01/2014 12:45 PM
I never read a book just on a whim - I do research before reading. So the genre thing isn't likely to surprise me unpleasantly. But I can see where that could happen. Even with e-books, mine always open to the first chapter, so I might miss a cover and preview kind of information. Not I personally, because, as I said, I research fully. But as far as my writing goes, my fantasy novel has obvious fantasy elements from the very beginning (maybe not the first three paragraphs, actually, but definitely within the short prologue, and then all throughout)
Paul Anthony Shortt 7/02/2014 7:30 AM
Good call, on this. Even if you're not trying to display specific genre queues, it can be important to let the reader know the tone and pace of your book early on. Picking up a book that starts like Urban Fantasy, but halfway through you realise it's become Paranormal Romance, can be jarring.


Product prices and availability are accurate as of 2019-04-21 20:33:46 UTC and are subject to change. Any price and availability information displayed on http://www.amazon.com/ at the time of purchase will apply to the purchase of this product.
LG Smart LED TV. LG webOS TV is designed to be obviously simple, so that it is easier to learn and more fun to use. Now, all you have to do is relax as webOS makes the TV experience simpler than before.


text:
Home Academics Building a Business Brick by Brick
Building a Business Brick by Brick
Faces of Belmont : Alumni Impacting the World
This series represents a collaboration between the Office of Communications and the Department of Public Relations, providing students practical experience in writing bios and creating profiles of Belmont alumni.
By Chelsea Lomartire
"Embrace the season that you're in as an emerging professional. Blend your personality and work ethic, and you are set up for success."
Johnathan Pushkar is a May 2018 graduate of Belmont University. Originally from Pittsburgh, Pennsylvania, Pushkar made the journey to Nashville to study music business. Following his sophomore year, he switched to public relations, which led him to jump start his own public relations consulting business.
When asked how the business started, Pushkar explained the impact of his internship with Dennis Scott Productions and the WannaBeatles.
While there, Pushkar was focused on booking, cold calling, social media strategy and production. He immediately connected with the office and one semester internship turned into being hired and working with them for the past two years.
This is where his consulting business started. He was hired as a freelance consultant by WannaBeatles member Bryan Cumming and from there, he created connections that ultimately turned into clients.
Today Pushkar has worked with over 20 clients across the country from New York, to Los Angeles, to Nashville. Some of the clients he works with currently include Bill Cinque (Neil Diamond's bassist), Rob Shanahan (renowned music photographer), the WannaBeatles and the Pool Kings from the hit DIY Network series. He is also working as an associate producer on a Mister Rogers tribute album and is the mastermind behind MiniSuperHeroesToday, an Instagram account he started four years ago.
The social media page focuses on posting an original LEGO photo each day, with figures in different poses and interactions. In four years the concept has grown from just Instagram to Facebook and a YouTube channel. His Instagram page currently has over 54,000 followers and his YouTube channel has over 10,000 subscribers. Through this concept, Pushkar has had the opportunity to interact with Marvel movie celebrities and directors, Disney accounts and Gary Vaynerchuk and has been invited to create marketing videos for the LEGO company.
"MiniSuperHeroesToday has allowed me to cut my teeth with social media," he said. "It has taught me the importance of social media strategy, analytics, hashtagging and working with influencers. The secret to all of it is figuring out how a brand can bring value and consistency to an audience through authenticity."
Pushkar also spoke about his time at Belmont and how it prepared him for life after graduation. "There is a certain weight and value that the Belmont name carries in the Nashville community. The university gave me a great education and amazing networking opportunities. The professors in the Department of Public Relations have become lifelong mentors and friends."
Some of the biggest pieces of advice that Pushkar has learned throughout his time at Belmont include:
"Put yourself out there. You are only as strong as your network. It is not necessarily about what you know or who you know, it's about who knows you."
"Find a mentor or model yourself after an emerging professional. Follow in their footsteps but be authentic to your own character."
"Don't be afraid to work for free as a college student. Always be aware of when your being taking advantage of and know your value. But know the value of the experiences you have and the connections you make."
Pushkar is excited for the opportunity to see what creative opportunities life will present to him. His ultimate goal is to continue to live in happiness and contentment doing what he loves. Pushkar frequently returns to Belmont's campus to give back to future professionals.
To speak with Pushkar further, email him at jpushkarmedia@gmail.com or visit JPushkarMedia.com.
Must Read - Academics
Physical Therapy Students Complete International Clinical Affiliations
Hope Buckner - February 5, 2019
Belmont physical therapy students have the opportunity to complete international clinical affiliations including alongside seven Italian facilities that are coordinated by Eduglobal Associates, founded...
Elliott, Ramsey Represented in Grammy Nominations 2020
Schenkel Honored with Prestigious Longenecker Fellowship
Waterman Receives Heart of Hospice Award
Schoenfeld, Students Publish Article in Psi Chi Journal
Belmont Students Volunteer with 'The Song,' New Show Launches January 4
Davis Publishes Article
Paul Chenoweth - January 18, 2013
Dr. Andrew Davis, assistant professor in the philosophy department, has an article titled "Schema and Bild: the Act bridging Potentiality and Actuality" published in...
Belmont Awarded $1 Million Lilly Endowment Grant
Study Abroad Office Offers More Than 45 Opportunities for Maymester, Summer...
Cystic Fibrosis Foundation of Middle Tennessee Honors Belmont Law Alumnae
Belmont Named a Best Business School by Princeton Review


text:
Q: Cell color of WPF DataGrid back to the default I'm using buildin WPF DataGrid in .net 4.
I can set the background of a DataGridCell programatically like below.
DataGridCell dgc = this.GetCell(i, j);  //GetCell is extension func
dgc.Background = Brushes.LightGray;

My question is, how can i remove the background color i set and back to the default?
By "default" I mean the default transparent background with the blueish color when the cell is selected.
If i just set back the background of the cell like below,
dgc.Background = Brushes.Transparent;

then, it does not become blueish when it is selected.

A: dgc.ClearValue(DataGridCell.BackgroundProperty);


WANNA GO TO THE BEACH? YEAH YEAH YEAH!
The Yeah Yeah Yeahs have added an extra date to their forthcoming UK jaunt.
The band will now play at The Old Market, Hove on April 18.
As previously reported on NME.COM, the band are currently working on the follow up to 2003's 'Fever To Tell'.


1987 VOLVO 240 GL ... 79,858 Original Miles Engine : 4 Cyl, 2.3L Transmission : Auto Vin : YV1AX8845H1232115 Exterior : Silver Interior : Gray Body Style : Sedan This One Owner, Missouri beauty has Automatic Transmission, Power Brakes, Power Windows, Power Door locks, Full Instrument Cluster, Leather like Interior, GL Rims, CD / AM / FM, Sunroof and Air Conditioning. Engine is in Good Shape, does not smoke, does not leak, nice and quiet. Transmission feels Perfect, shifts without any problems, without delay, and without noise. Suspension is in Excellent shape, Car tracks nice and straight. There is No Evidence of any Electrical problems. The exterior is in Excellent shape for a 1987. ( !!! Check out the pictures !!! ). The paint is original with absolutely no rust. Underside of this car is covered with undercoating. Seats, Carpet Floor and Glass are all in Great shape ( !!! Check out the pictures !!! ) Interior of this car is Nice and Clean ( !!! Check out the pictures !!! ). Rubber seals are in good shape and not dried up. This 240 GL has 4 matching New Tires that are mounted on Good straight rims. As You can see in the pictures the car comes with Books and Records. Our Mechanics have performed Full Maintenance on this car, Full Tune-up, replaced Ball Joints as well as Tie Rods. They have also replaced the brake pads. Our Upholstery shop completely redid the seats. The car looks like a million dollars right now. It will be sold with a clear title and it will be sold as-is, where-is.


text:
The Official Site of TheSt. Petersburg Titans
History of Athletics
Location of Home Games
Titan Club Sponsorship Packages
Titan Club Members
Ad Sales Media Guide
HR Media Guide
Related Bios Earnest Crumbley
George Carbart
Title: Assistant Basketball Coach
Coach Carbart is a native of St. Petersburg and a graduate of Boca Ciega High School, where he enjoyed an outstanding prep career as the leading scorer in Pinellas County in 1975. He was inducted into Boca Ciega High School's Athletic "Hall of Fame" in January 2006 for Outstanding Achievement in Basketball. He has a bachelor's and master's degree from Florida A&M University.
He was an assistant coach at FAMU in 1981 for the late Josh Giles (formerly of Polk Community College). Coach Carbart then moved to the University of Maryland Eastern Shore for four years. He was a head coach in the NBA Summer Pro League in Los Angeles and a former NBA scout for the L.A. Clippers and L.A. Lakers, where he was responsible for scouting Division I and II teams for Bill Bertka. He is a member of Kappa Alpha Psi Fraternity and Phi Delta Kappa.
In his 19th year at SPC, he assists in all phases of the program, including recruiting, on-the-floor coaching and game-day preparation.
St. Petersburg FL 33733-3489
St. Petersburg College is committed to equal access/equal opportunity in its programs, activities, and employment. For additional information visit www.spcollege.edu/eaeo/
Mon, 02/25 | Men's Basketball at Polk State College L, 86-68 (Final) BX
Sat, 02/23 | Men's Basketball at Hillsborough Community College L, 80-71 (Final) BX
Sat, 02/16 | Men's Basketball vs. Polk State College W, 79-55 (Final) BX
Wed, 02/13 | Men's Basketball at State College of Florida L, 81-78 (Final) BX
Sat, 02/09 | Men's Basketball vs. Florida Southwestern State College L, 77-66 (Final) BX


text:
Retro Rally Car & Motorcycle Show in Kingston this Saturday
Posted by Paul Smart on June 6, 2022 in Art, Events, Music · 0 Comments
(Jim Mushett)
Renee Darmstadt explains how her Cornell Street Studios' Retro Rally Car & Motorcycle Show, Musical Gala and Group Art Show, which runs in Midtown Kingston in and around her popular space this Saturday afternoon, June 8, first got started. It was much the same way in which the whole sprawling gallery got going four years ago. Her dad, who owns and runs Darmstadt Doors in a large space on Cornell Street in Kingston, wanted to see the large amount of second-floor space that he had in his new warehouse put to use. And he wanted to see his daughter stick around town and find something to do that would help channel the energy of her many friends, many of them artists or budding new businesspeople in their own right.
"I had been doing a lot of vintage photo shoots here, and then a vintage photo show," she recalled, amidst preparations for this weekend, when half the street will be blocked off for her 1-to-6 p.m. event. "My father suggested we do an old car show…I've long felt like every show we do here brings in a different crowd on top of our base audience. And what happened was that all the old car people did come out – and with their families, too."
In addition to the greater space for cars, and a host of local sponsors including Volkswagen of Kingston (who'll be bringing out a new-model Beetle for the occasion), the event will feature continuous music all afternoon and a host of food vendors. That's not to mention the gallery's regular June nautical-themed show (featuring a room of Cape Breton and other seaside works by painter Robert Selkowitz) and a new group exhibit of retro works being put together just for this Saturday.
"A bunch of my friends and me will be getting all dressed up for the occasion, and we're urging everyone to do the same," Darmstadt added. When we asked what era of "retro" she was thinking of, she noted that the '40s and '50s seemed appropriate this season – although she added how everything older than the '80s was now considered "retro," at least in car terms.
In terms of specifics, musicians set to play, according to Darmstadt, include Kyle McDonough, Lara Hope & the Arktones, Feast of Friends and deejay Dan Jurow. Artists in the retro show included, as of presstime, the likes of Dave Ryan, Jim Mushett, Jennifer Kiaba, Kim Borell, Heather Gleason, Erica Hauser, Brian Gillette and Morgaine Healy. Plus, prizes were being lined up for costumes, cars, art – and attendees. If it should rain, Renee added, a make-up date of Saturday, June 22 has been set up.
"We've had a lot of fun here. Our openings now bring in a regular crowd of 300 or so," she said. "We've built audiences on top of audiences, making each show different. People have appreciated that" – as has Midtown Kingston.
Retro Rally Car & Motorcycle Show, Musical Gala & Group Art Show, Saturday, June 8, 1-6 p.m.; "Making Waves" Art Show through end of June (featured artist Robert Selkowitz until June 14), Monday-Friday 10 a.m.-5 p.m.; Cornell Street Studios, 168 Cornell Street, Midtown Kingston; (845) 331-0191, www.cornellstreetstudios.com or on Facebook.
Previous Post Rhinebeck hosts inaugural Country Living Fair Next Post Ravi Shankar tribute concert in Woodstock
Do good and good things happen
Nature at your doorstep: Stanford Wildlife Preserve
Personally speaking: Julie Kelsall-Dempsey
Another village sinkhole
Hugh Reynolds: Mike Hein's summer tour
Onteora board is unsure of Crossroads resort figures


text:
\section{Introduction}

Polar codes \cite{polar} are a family of error correcting codes with capacity-achieving property over various classes of channels, providing excellent error rate performance for practical code lengths \cite{short_block}.
The construction of polar codes is based on the polarization effect of the Kronecker powers of the binary $2 \times 2$ kernel matrix $T_2 = \begin{pmatrix} 1 & 0 \\ 1 & 1 \end{pmatrix}$.
A major drawback of this construction is the restriction of achievable block lengths to powers of 2.
Puncturing and shortening techniques can be used to adjust the code length, at the cost of a reduced bit polarization \cite{punct_paper}.
To overcome this limitation, multi-kernel polar codes have been introduced in \cite{mk_arxiv}.
By mixing binary kernels of different sizes in the construction of the code, these codes prove that many block lengths can be achieved while keeping the polarization effect.

Many software and hardware implementations of polar code decoders have been proposed in literature.
While software guarantees a higher degree of flexibility in terms of data structures, fast software decoders have to rely on efficient memory management \cite{legal_SW,Shen_SW}.
The importance of smart memory usage is even more evident in hardware implementations, where memory accounts for the majority of area occupation and power consumption, and heavily impacts decoder speed \cite{SC_first,hashemi_JETCAS,Ercan_Allerton}.
The memory structure first proposed in \cite{SC_semi-par} for purely binary polar codes, and widely adopted in SC-based decoders \cite{balatsoukas_SCL_HW}, relies on the observation that memory requirements decrease as the decoding stage increases.
We show how this trend continues in multi-kernel polar codes, proposing an efficient memory structure for SC-based polar decoders, and providing functions for the evaluation of the overall memory requirements.
This structure supports the decoding of codes constructed with any combination of kernel sizes, making it an ideal framework for multi-kernel decoder hardware implementations \cite{Coppolino_MK}.

\section{Multi-Kernel Polar Codes}
\begin{figure}
\centering
\[ G_{12} = \left(
\begin{array}{ c c c:c c c|c c c:c c c}
 1 & 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
 0 & 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
 \hdashline
 1 & 1 & 1 & 1 & 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\
 1 & 0 & 1 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\
 0 & 1 & 1 & 0 & 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\
 \hline
 1 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 1 & 0 & 0 & 0 \\
 1 & 0 & 1 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 \\
 0 & 1 & 1 & 0 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 \\
 \hdashline
 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 \\
 1 & 0 & 1 & 1 & 0 & 1 & 1 & 0 & 1 & 1 & 0 & 1 \\
 0 & 1 & 1 & 0 & 1 & 1 & 0 & 1 & 1 & 0 & 1 & 1
\end{array}
\right) \]
\caption{Transformation matrix $G_{12} = T_2 \otimes T_2 \otimes T_3$.}
\label{Fig:G_12_TM}
\end{figure}

Multi-kernel polar codes generalize the construction of polar codes by mixing binary kernels of different sizes.
Similarly to polar codes, an $(N,K)$ multi-kernel polar code is completely defined by a $N \times N$ transformation matrix $G_N$ and a frozen set $\mathcal{F}$, with $|\mathcal{F}| = N-K$.
Transformation matrix has the form
\begin{equation}
  G_N = T_{p_1} \otimes T_{p_2} \cdots \otimes T_{p_s} ,
  \label{equ:GN-MK}
\end{equation}
where $T_{p_i}$ is a $p_i \times p_i$ binary matrix, $i=1,2,\ldots,s$, denoting a polarizing kernel of size $p_i$, and $N = p_1 \cdot p_2 \cdot \dots \cdot p_s$.
Binary kernels of different sizes can be found in \cite{kernel_presman}.
Transformation matrix $G_{12} = T_2 \otimes T_2 \otimes T_3$ is shown in Figure~\ref{Fig:G_12_TM}, where
\begin{align}
\label{equ:T2_T3}
  T_2 & = \begin{pmatrix} 1 & 0 \\ 1 & 1 \end{pmatrix}, &
  T_3 & = \begin{pmatrix} 1 & 1 & 1 \\ 1 & 0 & 1 \\ 0 & 1 & 1 \end{pmatrix}
\end{align}
and the recursive structure of the matrix is highlighted.
The frozen set $\mathcal{F}$ indicates the $N-K$ bits to be frozen in the code construction, and can generally be designed according to bit reliabilities \cite{mk_arxiv} or minimum distance \cite{mk_dist_arxiv}.
Finally, the encoder is defined by $x = u \cdot G_N$, mapping the input vector $u \in \F2^N$ to the codeword $x \in \F2^N$, where $u_i = 0$ for $i \in \mathcal{F}$, and $u_i$, $i \notin \mathcal{F}$, stores the information bits.
We recall the set $\mathcal{I} = \mathcal{F}^c$ to be termed as information set.

The structure of multi-kernel polar codes can be better understood through the Tanner graph of the code; this consists of various $p_i \times p_i$ blocks $B_{p_i}$, corresponding to the different $T_{p_i}$ kernels used in the construction of the transformation matrix, connecting input vector and codeword.
Each of the $s$ stages composing the graph is formed by $N_i = N/p_i$ kernel blocks $B_{p_i}$, performing the operations involving kernel $T_{p_i}$.
Permutations $P_i$ between stages are described in \cite{mk_arxiv}; an example of Tanner graph for a $G_{12}$ is given in Figure~\ref{Fig:G_12_TG}.

\begin{figure}
\centering
\includegraphics[width=\columnwidth]{figures/G_12_TG.eps}
\caption{Tanner graph defined by $G_{12} = T_2 \otimes T_2 \otimes T_3$.}
\label{Fig:G_12_TG}
\end{figure}

Multi-kernel polar codes can be decoded through successive cancellation (SC) decoding on the Tanner graph of the code, where log-likelihood ratios (LLRs) \cite{radix} are passed from the right to the left, while partial sums (PSs) based on hard decisions on the decoded bits are passed from the left to the right.
LLRs and PSs are calculated in the kernel blocks, depicted as
\begin{center}

  \begin{tikzpicture}[scale=0.2, line width=0.8pt]
	\draw   (0,0) rectangle (4,8) node[midway]{$B_p$};
	\draw[] (-2,7) node[left] {$u_0 , l_0$} -- (0,7) ;
	\draw[] (-2,5) node[left] {$u_1 , l_1$} -- (0,5) ;
	\draw[] (-0.5,3.5) node[left] {$\vdots$}    (0,3) ;
	\draw[] (-2,1) node[left] {$u_{p-1} , l_{p-1}$} -- (0,1) ;
	\draw[] (4,7)                     -- (6,7) node[right] {$x_0 , L_0$} ;
	\draw[] (4,5)                     -- (6,5) node[right] {$x_1 , L_1$} ;
	\draw[] (4,3)                        (4.5,3.5) node[right] {$\vdots$} ;
	\draw[] (4,1)                     -- (6,1) node[right] {$x_{p-1} , L_{p-1}$} ;
  \end{tikzpicture}
\end{center}
Blocks in the same column belong to the same stage and can perform decoding operations in parallel.
Roughly speaking, $L_i$ and $l_i$ represent the LLRs of the partial sums $u_i$ and $x_i$ respectively.
However, PSs are calculated on the basis of the previously decoded bit, hence they may not match with the connected LLRs.
We indicate with $L_{i,(j-1)p_i},\dots,L_{i,j p_i - 1}$ and $u_{i,(j-1)p_i},\dots,u_{i,j p_i - 1}$ the LLRs and PSs input of the $j$-th block of stage $i$ respectively, with $j \leq N_i = N/p_i$.
LLRs $L_{1,0},\dots,L_{1,N-1}$ correspond to channel LLRs, while $u_{s,0},\dots,u_{s,N-1}$ correspond to the decoded bits.
An example of this labeling is given in Figure~\ref{Fig:G_12_TG}.

Given the binary input vector $u = (u_0,u_1,\ldots,u_{p-1})$, corresponding to the partial sums calculated from the decoded bits, the output vector $x = (x_0,x_1,\ldots,x_{p-1})$ is calculated as $x = u \cdot T_p$.
If we call $T_p^i$ the $i$-th column of the kernel matrix $T_p$, the update rule for the PSs can be written as
\begin{equation}
 x_i = u \cdot T_p^i.
 \label{equ:g}
\end{equation}
The vector $x$ corresponds to the partial sums calculated by the kernel $T_p$, that will be used as input for the LLRs calculations of other blocks.
This update rule is performed from left to right, and can be used also for the encoding.

Output LLRs $l_0, \dots, l_{p-1}$ are calculated sequentially using the input LLRs $L_0,\dots,L_{p-1}$ coming from the previous stage and the PSs corresponding to the previously decoded bit, i.e.,
\begin{equation}
 l_i = f_i^{p}( L_0 , \dots , L_{p-1} , u_0 , \dots, u_{i-1} ),
 \label{equ:f}
\end{equation}
with $l_0 = f_0^{p}( L_0 , \dots , L_{p-1} )$.
This update is performed from the right to the left, and corresponds to the successive cancellation principle.
Rules for the derivation of LLR update functions for arbitrary binary kernels can be found in \cite{marg_ker}.

\section{Memory Management}
\begin{figure}
\centering
\includegraphics[width=0.98\columnwidth]{figures/data_flow.eps}
\caption{Data flow graph of the SC decoder for the multi-kernel polar code defined by $G_{12} = T_2 \otimes T_2 \otimes T_3$. Circles represent LLR updates, squares represent PS updates.}
\label{Fig:G_12_flow}
\end{figure}

Similarly to polar codes, it is possible to describe the SC decoding process of a multi-kernel polar code using a data flow graph, depicted in Figure~\ref{Fig:G_12_flow} for the code generated by $G_{12}$.
The data flow graph represents memory dependencies arising during the decoding, where circles and squares represent memory needed to store LLRs and PSs, respectively, and black circles represent channel LLRs.
In particular, circles and squares identify the need for new memory allocation, while horizontal lines determine the number of time steps for which the values need to be stored.
Thick lines represent LLR updates, while dotted lines identify operations involving partial sums, i.e. LLR updates when they merge with thick lines and PSs updates when they connect squares.
The study of the data flow graph highlights the strong dependencies among data, along with a repetitive structure in the LLR update functions, and gives a precise order in the scheduling of the decoding operations.
In general, the hardest constraint for the LLR update functions is given by the calculation of the necessary PSs.
The memory usage patterns observed in Figure~\ref{Fig:G_12_flow} can be found for code of any length, and can be exploited to develop a memory management framework as follows.

\subsection{Memory Structure}

The memory structures for a generic SC decoder for the multi-kernel polar code defined by $G_{12}$ is presented in Figure~\ref{Fig:G_12_MS}, along with memory dependencies.
We call $\Lambda$, $\Pi$ and $\Upsilon$ the data structures used to respectively store LLRs, PSs and decoded bits.
We define as $Q$ the number of bits assigned to the representation of each internal LLR, while a partial sum and a decoded bit are, by definition, single-bit values.
The proposed memory structure relies on the observation made in in \cite{SC_semi-par} that memory requirements for polar codes decoding decrease as the stage index increases; we show that this phenomenon can be extended to multi-kernel polar codes.

The memory structure of multi-kernel polar codes decoder depends on the order of the kernels defining the transformation matrix $G_N = T_{p_1} \otimes \dots \otimes T_{p_s}$, where $s$ is the number of stages, i.e., the number of factors in the Kronecker product.
LLRs can be stored in $s+1$ $Q$-bits vectors $\Lambda_0,\dots,\Lambda_s$ of different lengths, i.e. with a different number of elements.
The length of vector $\Lambda_s$ is always 1, and stores the LLR of the currently decoded bit.
The length of vector $\Lambda_i$ is given by the product of the last $s-i$ kernel sizes, i.e., $\Lambda_i$ has $p_{i+1} \cdot \dots \cdot p_s$ entries.
PSs are stored in $s$ binary matrices  $\Pi_1,\dots,\Pi_s$ of different width and depth, depending on the decoding stage.
The width of $\Pi_i$ is given by the size of kernel $p_i$, while its depth is given by the product of the last $s-i$ kernel sizes, i.e., is given by $p_{i+1} \cdot \dots \cdot p_s$, similarly to LLR vectors.
The first matrix $\Pi_s$ is an exception, since it has width $p_s-1$.
This is due to the fact that the last column of $\Pi_s$ would be updated during the PS update phase of the decoding of the last bit.
Since the PS update is executed right after the bit estimation, we skip this last PS update and we do not need to store the last column of $\Pi_s$.
Finally, the decoded bits are stored in the binary vector $\Upsilon$ of length $N$.

\begin{figure}
\centering
\includegraphics[width=\columnwidth]{figures/G_12_mem.eps}
\caption{Memory structure for $G_{12} = T_2 \otimes T_2 \otimes T_3$. White dots represent LLR updates, black dots represent PS updates. Red lines represent $B_2$ blocks, blue lines represent $B_3$ blocks.}
\label{Fig:G_12_MS}
\end{figure}

\subsection{Memory Update}

\begin{algorithm}[htb]
\caption{SC Algorithm} \label{algo}
\begin{algorithmic}[1]
\State $\text{Initialize } \Lambda, \Pi, \Upsilon $
\For{$i = 0 \dots N-1$}
   \State $\text{LLR update}$
   \State $u_i \text{ calculation}$
   \State $\text{PS update}$
\EndFor
\State\Return $u$
\end{algorithmic}
\end{algorithm}
Algorithm \ref{algo} depicts the logical flow of operations required by SC decoding. In this Section, we follow its schedule and first describe the update operations for the LLRs, then for the decoded bits $u$, and finally for the PSs.
The memory update operations are performed by the kernel block.
LLR vector $\Lambda_0$ is initially filled with the $N$ LLRs extracted from the received symbols, while the rest of the memory is initialized to zero; we recall that the LLRs have to be permuted according to $P_1$ before the insertion in $\Lambda_0$.
According to the SC algorithm, bits are decoded sequentially, hence some of the memory structures are updated at every bit estimation; this update process is illustrated for the decoding of generic input bit $u_i$.

\textbf{LLR update: } \\
The update function \eqref{equ:f} to be used in this phase depends on the index $i$ of the decoded bit $u_i$, and it is selected using the mixed radix representation of $i$ based on the kernels composing the transformation matrix of the code.

In a base $p$ radix system, positive integers are represented as a finite sequence of digits smaller than $p$.
A mixed radix system is a non-standard positional numeral system, generalizing classic radix system, in which the numerical base depends on the digit position.
A well known example of a mixed radix numeral system is the one used to measure time in hours, minutes and seconds.
We use the sequence $\langle p_1, \ldots p_s \rangle$ of the sizes of the kernels constructing the transformation matrix as the base of a finite mixed radix system representing the index $i$ of the decoded bit $u_i$.
According to this representation, any integer $i < N$ can be expressed as a vector of $s$ digits $i = b_1^{(i)} \dots b_s^{(i)}$, with $0 \leq b_j^{(i)} < p_j$ and
\begin{equation}
i = b_s^{(i)} + \sum_{j=1}^{s-1} b_j^{(i)} \cdot (p_{j+1} \cdot \dots \cdot p_s).
\end{equation}
The mixed radix representation of the decoded bits indices for $G_{12} = T_2 \otimes T_2 \otimes T_3$ is given by:
\begin{center}
\begin{tabular}{ c|c c c c c c c c c c c c c}

 $i$   & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 \\
 \hline
 $b_1^{(i)}$ & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 1 & 1 & 1  & 1  \\

 $b_2^{(i)}$ & 0 & 0 & 0 & 1 & 1 & 1 & 0 & 0 & 0 & 1 & 1  & 1  \\

 $b_3^{(i)}$ & 0 & 1 & 2 & 0 & 1 & 2 & 0 & 1 & 2 & 0 & 1  & 2  \\

\end{tabular}
\end{center}

The update of LLR vectors proceeds from right to left in Figure~\ref{Fig:G_12_MS}.
Starting from $\Lambda_1$, all the vectors are updated using the previous LLR vector and the present PS matrix as input; in general, vector $\Lambda_j$ is updated using vector $\Lambda_{j-1}$ and the partial sums stored in $\Pi_j$.
The LLR update rule to be used in the update of $\Lambda_j$ is selected using the mixed radix representation of $i$, and more precisely the LLR update rule $f_{b_j^{(i)}}^{p_j}$ is used.
This method is an extension of the method proposed in \cite{SC_semi-par} for the scheduling of $f$ and $g$ functions in the decoding of polar codes.
Each entry $\Lambda_j(k)$ of the LLR vector is calculated as
\begin{equation}
\begin{array}{l}
\Lambda_j(k) = f_{b_j^{(i)}}^{p_j}( \Lambda_{j-1}(k \cdot p_j) , \dots , \Lambda_{j-1}((k+1) \cdot p_j - 1) ,\\
\qquad \qquad \Pi_j(k,0) , \dots, \Pi_j(k,b_j^{(i)}) ).
\end{array}
\end{equation}
The update operations of a vector $\Lambda_j$ can be run in parallel to reduce latency using up to $p_{j+1} \cdot \dots \cdot p_s$ kernel blocks.

Using the proposed LLR update algorithm, $s$ LLR vectors, i.e. from $\Lambda_1$ to $\Lambda_s$, are updated for every decoded bit $u_i$.
However, the data flow presented in Figure~\ref{Fig:G_12_flow} shows that the number of vectors to be updated actually depends on the index $i$ of the decoded bit.
A closer look to the mixed radix representation table suggests the reason of this scheduling: in fact, the mixed radix representations of two consecutive numbers differ only on the right of the position of the rightmost nonzero element of the second number.
In practice, given $i-1 = b_1^{(i-1)} \dots b_s^{(i-1)}$, if it exists an index $z$ such that $b_z^{(i)} \neq 0$ and $b_j^{(i)} = 0$ for all $j > z$, we have that $b_j^{(i)} = b_j^{(i-1)}$ for all $j < z$.
As a consequence, to decode the bit $u_i$ it is not necessary to update the vectors $\Lambda_j$ with indices $j < z$, and the update can be run starting from $\Lambda_z$.
Of course, for the case $i=0$ all the vectors have to be updated.
This acceleration technique is a generalization of the one proposed in \cite{radix} for polar codes, and halves the number of vectors updates.

This property allows a further simplification of the LLR update algorithm.
We have seen that the LLR update is run starting from $\Lambda_z$ with $z$ such that $b_z^{(i)} \neq 0$ and $b_j^{(i)} = 0$ for all $j > z$.
This means that the vector $\Lambda_z$ is updated using function $f_{b_z^{(i)}}^{p_j}$, while all the other vectors are updated using a function of the form $f_{0}^{p_j}$.
This means that it is only necessary to find the subscript of the first LLR update function, while the other ones all have subscript 0.

\begin{algorithm}[htb]
\caption{LLR update} \label{algo_LLR}
\begin{algorithmic}[1]
\State $n = 1 $
\If{i = 0}
   \State break
\Else
   \For{$z = s \dots 1$}
      \If{$i \mod p_z \neq 0$}
         \State break
      \EndIf
      \State $i = \frac{i}{p_z}$
      \State $n = n \cdot p_z$
   \EndFor
\EndIf
\State $b = i \mod p_z$
\For{$k = 0 \dots n-1$}
   \State $\Lambda_z(k)= f_{b}^{p_z}( \Lambda_{z-1}(k \cdot p_z) , \dots , \Lambda_{z-1}((k+1) \cdot p_z - 1) , \Pi_z(k,0) , \dots, \Pi_z(k,b) )$
\EndFor
\For{$j = z+1 \dots z$}
   \State $n = n \cdot p_j$
   \For{$k = 0 \dots n-1$}
      \State $\Lambda_j(k)= f_{0}^{p_j}( \Lambda_{j-1}(k \cdot p_j) , \dots , \Lambda_{j-1}((k+1) \cdot p_j - 1) )$
   \EndFor
\EndFor
\end{algorithmic}
\end{algorithm}

\textbf{$u_i$ estimation: } \\
If $i \in \mathcal{F}$, i.e. it belongs to the frozen set, its value is known to be zero, hence $\Upsilon(i) = 0$.
Otherwise, i.e. if $i \notin \mathcal{F}$, the value decoded bit is decided by hard decision on its LLR.
After the LLR update phase, the LLR of the bit $u_i$ will be copied in $\Lambda_s$ as explained in next paragraph.
In our implementation, negative LLRs represent the bit 1, while positive LLRs represent the bit 0.
Through hard decision, we set $\Upsilon(i) = \frac{\sgn(\Lambda_s(0))+1}{2}$.
To sum up, we have that
\begin{equation}
\Upsilon(i) =
\left\{
\begin{array}{l r}
  0 & \text{if } i \in \mathcal{F}   \\
  \frac{\sgn(\Lambda_s(0))+1}{2} & \text{if } i \notin \mathcal{F}
\end{array}
\right.
\end{equation}

\begin{algorithm}[htb]
\caption{$u_i$ calculation} \label{algo_U}
\begin{algorithmic}[1]
\If{$i \in \mathcal{F}$}
   \State $\Upsilon(i) = 0$
\Else
   \State $\Upsilon(i) = \frac{\sgn(\Lambda_s(0))+1}{2}$
\EndIf
\end{algorithmic}
\end{algorithm}

\textbf{PS update: } \\
PS matrices are updated in decreasing order starting from $\Pi_s$.
Inside each matrix, the entries update is performed per columns, in increasing order starting from the first column.
When the last column of a matrix is filled, a column of the next matrix is updated.
Similarly to LLRs, the update function depends on the mixed radix representation of index $i$; in particular, the number of matrices to be updated is given by the number of consecutive digits of the mixed radix representation of $i$ with the highest symbol admitted by the radix, counting from the last digit.

Update always starts from the last PS matrix $\Pi_s$, that is a row vector of width $p_s$.
The value of the decoded bit $u_i$ is copied in the column $b_s^{(i)}$ of the matrix, i.e., $\Pi_s(0,b_s^{(i)}) = \Upsilon(i)$.
When $b_s=p_s-1$, the last column of the matrix has been filled, and the column $b_{s-1}^{(i)}$ of the matrix $\Pi_{s-1}$ is updated, otherwise the update process ends.
In general, if $b_j^{(i)} = p_j-1$ for all $j > z$ and $b_z^{(i)} < p_z-1$, the matrices $\Pi_s,\Pi_{s-1},\dots,\Pi_z$ are going to be updated.
When the last column of matrix $\Pi_j$ is filled, i.e. when $b_j^{(i)} = p_j-1$, then the column $b_{j-1}$ of matrix $\Pi_{j-1}$ has to be updated.
In this case, each row of $\Pi_j$ is used to update the column $b_{j-1}^{(i)}$ of $\Pi_{j-1}$ as $[\Pi_{j-1}(k \cdot p_j,b_{j-1}^{(i)}),\dots,\Pi_{j-1}((k+1)\cdot p_j - 1,b_{j-1}^{(i)})] = [\Pi_j(k,0),\dots,\Pi_j(k,p_j-1)] \cdot T_{p_j}$ for $k = 0,\dots,p_{j+1} \cdot \dots \cdot p_s - 1$.
If we call $T_p^k$ the vector formed by the $k$-th column of the kernel matrix $T_p$, the update rule for the PSs can be rewritten as
\begin{equation}
\Pi_j(k,b_j^{(i)}) = \Pi_j \left( \left\lfloor \frac{k}{p_{j-1}} \right\rfloor ,- \right) \cdot T_{p_j}^{c}
\end{equation}
for $k = 0,\dots,p_{j+1} \cdot \dots \cdot p_s$, where $\Pi_j(k,-)$ represents the $k$-th row of $\Pi_j$ and $c = (k \mod p_{j+1})+1$.
As an exception, the PS update step is not executed for the last decoded bit $u_{N-1}$, since this phase would have been executed after the decoding of the last bit and it would be pointless.

\begin{algorithm}[htb]
\caption{PS update} \label{algo_PS}
\begin{algorithmic}[1]
\State $n = 1$
\If{$i = N-1$}
   \State return
\EndIf
\For{$j = s-1 \dots 1$}
   \If{$i + 1 \mod p_{j+1} \neq 0$}
      \State return
   \EndIf
   \State $i = \frac{i+1}{p_{j+1}} - 1$
   \State $n = n \cdot p_{j+1}$
   \State $b = i \mod p_j$
   \For{$k = 0 \dots n-1$}
      \State $c = (k \mod p_{j+1})+1$
      \State $\Pi_j(k,b) = \Pi_{j+1} \left( \left\lfloor \frac{k}{p_{j-1}} \right\rfloor,- \right) \cdot T_{p_j}^{c}$
   \EndFor
\EndFor
\end{algorithmic}
\end{algorithm}

\section{Analysis and Conclusions}

The proposed memory structure allows to limit the memory requirement of a multi-kernel polar decoder.
In fact, a na\"{\i}ve memory management of the SC decoder for a multi-kernel polar codes with transformation matrix $G_N=T_{p_1} \otimes \dots \otimes T_{p_s}$ requires to store
all the LLRs and the PSs depicted in the Tanner graph of the code.
As a consequence, $\mathcal{M}^{LLR}_{} = N \cdot (s+1)$ LLRs and $\mathcal{M}^{PS}_{} = N \cdot s$ PSs, with $N = p_1 \cdot \dots \cdot p_s$, have to be stored, with space complexity $O(s N)$.
The memory requirement is hence linearly dependent on both the code length $N$ and the number of kernels $s$.

In the proposed memory structure, every LLR vector $\Lambda_i$ with $i \leq 1$ stores $\frac{N}{p_1 \cdot \dots \cdot p_{i} }$ LLRs, while the first vector $\Lambda_0$ stores the $N$ LLRs derived from the received signals.
In total, for the proposed memory framework
\begin{equation}
\begin{array}{r l}
  \mathcal{M}^{LLR}_{prop} & = N + \frac{N}{p_1} + \frac{N}{p_1 \cdot p_2} + \dots + 1 = \\
   & = \left( \dots \left( \left( p_1 + 1 \right) \cdot p_2 + 1 \right) \cdot \dots \right) \cdot p_s + 1
\end{array}
\end{equation}
LLRs have to be stored.
Similarly, every PS matrix $\Pi_i$ with $i>1$ stores $\frac{N}{p_1 \cdot \dots \cdot p_{i} } \cdot p_i = \frac{N}{p_1 \cdot \dots \cdot p_{i-1} }$ partial sums, while $\Pi_1$ stores $\frac{N}{p_1} \cdot (p_s - 1)$ PSs.
Then, the total number of PSs is
\begin{equation}
\begin{array}{r l}
  \mathcal{M}^{PS}_{prop} & = \frac{N}{p_1} \cdot (p_s - 1) + \frac{N}{p_1 \cdot p_2} + \dots + p_s =  \\
   & = \left( \dots \left( \left( p_1 \cdot p_2 + 1 \right) \cdot p_3 + 1 \right) \cdot \dots \right) \cdot p_s.
\end{array}
\end{equation}
By construction, we have that $\mathcal{M}^{PS}_{prop} \leq N \leq \mathcal{M}^{LLR}_{prop} < 2N$, hence the space complexity for both LLRs and PSs is reduced to $O(N)$.
A comparison between the memory requirements for the proposed memory structure and the na\"{\i}ve one involving only kernels of sizes 2 and 3 is presented here:
\begin{center}
\begin{tabular}{|c|c|c|c|c|c|}
\hline
N	& 12 & 72 & 144 & 384 & 972 \\
\hline
$\mathcal{M}^{LLR}_{prop}$ & 22 & 139 &  283 &  766 & 1822 \\
$\mathcal{M}^{LLR}_{}$ & 48 & 432 & 1008 & 3456 & 7776 \\
\hline
$\mathcal{M}^{PS}_{prop}$  & 15 & 102 &  210 &  573 & 1335 \\
$\mathcal{M}^{PS}_{}$  & 36 & 360 &  864 & 3072 & 6804 \\
\hline
\end{tabular}
\end{center}
The memory requirement reduction enabled by the proposed memory structure is remarkable.
This proves that multi-kernel polar codes can be used as a valid alternative to punctured polar codes in terms of memory complexity.
Given the similarities between polar codes and multi-kernel polar codes, it is straightforward to apply the proposed memory structure to list or simplified SC decoders.
Finally, the proposed implementation can be easily transposed to hardware, reducing the complexity of an ASIC or FPGA dedicated architecture.

\bibliographystyle{IEEEbib}

redpajama_set_name: RedPajamaArXiv


Heather Prete is a UCLA-certified Mindfulness facilitator, Self-Compassion teacher, and Mindfulness in Recovery coach. She began her formal training with Tibetan Compassion practices in 1998 and has received instruction in the U.S. and Asia. Heather spent time training PhDs at the Tarzana Treatment center and working as a guiding teacher for Mindful School's online adult courses (which were featured in Time magazine's cover story, "The Mindful Revolution"). She also worked with those in recovery at Alternatives Treatment Center, Westside Treatment, and BLVD Centers. Since 2000, Heather has remained committed to yearly retreats ranging from seven to 30 days in length and has completed three teacher trainings.


text:
What Should Your 'Bachelor In Paradise' Viewing Party Include? (Hint: Someone Has To Play Jorge The Bartender)
By Tracy Dye
It's time to rally your friends and family, because the dramatic two-part Season 2 finale of Bachelor in Paradise starts Sunday, Sept. 6. I can barely contain my excitement, guys. Seriously, I'm surprised I'm able to type this as my body quakes with thoughts of Ashely I.'s tears, breakups, rose ceremonies, and Jorge The Bartender's sage advice. As an Entertainment Writer — and proud resident of the Bachelor Nation — I feel it is my civic duty to keep you abreast of all things BiP, so type on I shall. A finale is no ordinary night of television viewing, particularly when it comes to anything from the Bachelor franchise. My sister taught me long ago that finales are worth celebrating, which is why she and her friends make a ritual of hosting Bachelor parties during each season's final installment.
This season of BiP was particularly jaw-dropping (hi, Joe and Samantha, and everything in between), so you're going to want to go all out for your viewing party. In case you feel yourself bordering on a full-blown tizzy over the long list of to-do's you need to have squared away before Sunday night (i.e., tomorrow) rolls around — relax. I am here to ensure you are fully prepared going into party-planning mode. Grab your swimsuit, empanadas, and behold the following list of things you need to make your BiP party a celebration of the ages.
1. Swimwear
What better way to bid this season of BiP — and the summer — adieu than by dressing the part? Advise your guests to don their best bathing suits, tropical wraps, and flip flops.
2. A Fully Charged Smartphone
It's invariable that at least a few people will be unable to attend your party — these things happen. Keep your phone charged so that you can entertain while also participating in group chats, live tweets, and the like.
3. Mexican Cuisine
Either prepare it yourself, or make a stop at Chipotle.
4. Someone Who Can Play Jorge The Bartender
Let's face it: Jorge is the real breakout star of this season. No party would be complete without someone taking on the role of possibly the nicest bartender on the planet. Plus, somebody has to pour the drinks. Speaking of which...
These can be alcoholic or nonalcoholic — whichever you prefer. Regardless of what you're serving, be sure you have some fancy glasses and tiny umbrellas ready to go.
6. Kleenex
If you're like me, all of the shows within the Bachelor franchise can spur some unexpected emotions. Case in point: I've texted my sister, "I'm crying now" on more than one occasion during an instance of melodrama. Keep the tissues on hand for your sensitive partygoers.
These don't have to be actual roses. You can purchase faux roses, carnations, lollipops that kind of resemble flowers, or whatever fits into your budget. As the rose ceremonies are a staple of Bachelor Nation, toss your friends one at random moments, ask a friend, "Will you accept this rose?" after they are kind enough to refresh your nachos, or simply hold open a garbage bag full of petals and exclaim, "Help yourself!" This will ensure that — regardless of what goes down with the BiP cast members — all of your guests will be feeling the love.
You should now feel fully prepared for your BiP viewing party. Don't stress too much, and remember to have fun, above all else. After all, there's going to be enough drama playing out on our respective screens.
Images: Rick Rowell/ABC; Giphy (7)


text:
Health of Global Economy at Risk From Slow Reform Progress, Warns WEF
Sep 2, 2014 9:23pm
The health of the global economy is at risk, despite years of bold monetary policy, as countries struggle to implement structural reforms necessary to help economies grow, according to the Global Competitiveness Report 2014-2015 released today by the World Economic Forum.
According to the report's Global Competitiveness Index (GCI), the United States improves its competitiveness position for the second consecutive year, climbing two places to third on the back of gains to its institutional framework and innovation scores.
Elsewhere in the top five, Switzerland tops the ranking for the sixth consecutive year, Singapore remains second and Finland (4th) and Germany (5th) both drop one place. They are followed by Japan (6th), which climbs three places and Hong Kong SAR (7th), which remains stable.
Europe's open, service-based economies follow, with the Netherlands (8th) also stable and the United Kingdom (9th) going up one place. Sweden (10th) rounds up the top-10 of the most competitive economies in the world.
The leading economies in the index all possess a track record in developing, accessing and utilising available talent, as well as in making investments that boost innovation.
These smart and targeted investments have been possible thanks to a coordinated approach based on strong collaboration between the public and private sectors.
Philippines is most improved ASEAN country
In Asia, the competitiveness landscape remains starkly contrasted. The competitiveness dynamics in South-East Asia are remarkable.
Behind Singapore (2nd), the region's five largest countries (ASEAN-5) – Malaysia (20th), Thailand (31st), Indonesia (34th), the Philippines (52th) and Vietnam (68th) – all progress in the rankings.
Indeed, the Philippines is the most improved country overall since 2010. By comparison, South Asian nations lag behind, with only India featuring in the top half of the rankings.
In Europe, several countries that were severely hit by the economic crisis, such as Spain (35th), Portugal (36th) and Greece (81st), have made significant strides to improve the functioning of their markets and the allocation of productive resources.
At the same time, some countries that continue to face major competitiveness challenges, such as France (23rd) and Italy (49th), appear not to have fully engaged in this process. While the divide between a highly competitive North and a lagging South and East persists, a new outlook on the European competitiveness divide between countries implementing reforms and those that are not can now also be observed.
strategy setting