text:
Latest Issue Archives Sponsorship
Subscribe to hand picked articles by Justin Grammens on the Internet of Things and Artificial Intelligence of Things. Published and delivered to your Inbox every Wednesday. Free Forever.
No spam, ever. We'll never share your email address and you can opt out at any time.
Issue 156 November 17th 2021
Justin Grammens
Welcome, AIoT / IoT Weekly Readers to Issue number 156! Thank you for your interest in Artificial Intelligence, the Internet of Things, and the area in which they overlap called the Artifical Intelligence of Things ( AIoT ). As the world and technology changes, these devices are going to be able to think program, reprogram, and adjust in real-time. I'm very excited to see what's ahead!
Lots of great things have happened this past week:
We had our Applied AI Meetup as we discussed how local startups are applying AI in their business. If you missed it, you can see the video and watch prior videos and podcasts on our YouTube page!
Additionally, we are gearing up the December 2nd Meetup, where we'll be talking about Creating Art with Artificial Intelligence. Register today!
A quick note regarding sponsorship for AI & IoT job postings... getting good talented employees and consultants who know IoT and AI can be hard. Please consider sponsoring an issue of this publication to instantly reach thousands of readers with a hugely diverse background in AI/IoT and AIoT. Contact me or use the form online to receive more information!
Speaking of sponsorship, we are blessed to help promote an awesome organization with a really cool mission called, IoT Social Impact. Please visit their website to learn more and check out the details of them in the sponsor's section below.
I hope you enjoy this issue and continue to join me in this journey of exploring and leveraging the power of the Internet of Things and Machine Learning. Enjoy!
LinkedIn | @Twitter
How IoT and AI Are Helping Keep Truck Drivers Safe
Truck safety is a major focus for the trucking industry. Now there is Artificial Intelligence that can make a real-time difference in lives, money, and on-road safety.
4 Things You Need to Know Now About Edge Computing
Edge computing is one of the most important trends in IT. By 2023, more than half of new enterprise IT infrastructure will be at the edge, according to IDC.1 By 2025, Gartner predicts 75% of enterprise-generated data will be created and processed outside a traditional data center or cloud.2
Despite this significant shift, however, many IT and business leaders are early in the process of defining how edge complements their overall cloud strategy. According to exclusive research by Hewlett Packard Enterprise, many organizations are just beginning to realize the potential of edge initiatives through pilot projects and proofs of concept.
techtarget.com
Artificial Intelligence Trends and Predictions for 2021
Artificial intelligence (AI) has taken on many new shapes and use cases as experts learn more about what's possible with big data and smart algorithms. Today's AI market, then, consists of a mixture of tried-and-true smart technologies with new optimizations and advanced AI that is slowly transforming the way we do work and live daily life.
datamation.com
What is AIoT?
Technology is always full of new buzz words and abbreviations. Some don't stick around for long while others like AI become part of everyday language even if what it does isn't always understood. AIoT is the combination of Artificial Intelligence and the Internet of Things, two incredibly popular acronyms that have emerged as disruptive forces within the technological world. What does AIoT do, is it just another marketing term, or is it here to stay? Before answering these questions, it's important to understand what the two technologies do in their own right.
techradar.com
Are you working on an IoT Project that delivers a Social Impact?
Entries for The IoT Social Impact Award are open and your project could be a winner. The Award recognizes the use of IoT to build a better world, no matter what industry you're in.
Entries are free and close on November 26th, 2021. Our judging panel of global IoT experts will review all entries, and the shortlisted projects will be announced on January 6th, 2022. Enter today and you could win prizes from Quectel, floLIVE, and The IoT M2M Council. Visit the official Award website for more.
iotsocialimpact.com
Sponsor IoT Weekly News to reach a broad IoT audience!
Every Startup Is an AI Startup: How to Accelerate Business Growth With AI
There are many ways in which we, as consumers, use AI in our day-to-day activities without realizing it – unlocking our phone with face ID; seeing our emails automatically categorized; receiving content suggestions on websites; navigating while driving; converting speech to text in the form of subtitles or transcripts; interacting with chatbots and smart personal assistants, and more.
AI is now ubiquitous and indeed democratized, such that every startup needs to use AI at the heart of its technology stack to offer its customers the experience they have come to expect.
yourstory.com
New AI Algorithm May Quickly, Effectively Diagnose Deep Vein Thrombosis
A team of researchers are developing the use of an artificial intelligence (AI) algorithm with the aim of diagnosing deep vein thrombosis (DVT) more quickly and as effectively as traditional radiologist-interpreted diagnostic scans, potentially cutting down long patient waiting lists and avoiding patients unnecessarily receiving drugs to treat DVT when they don't have it.
news-medical.net
Physical Athletes Visual Skills Prove Sharper Than Action Video Game Players
Athletes still have the edge over action video gamers when it comes to dynamic visual skills, a new study from the University of Waterloo shows. For an athlete, having strong visual skills can be the difference between delivering peak performance and achieving average results.
Machine Learning (ML) Business Use Cases 2021
As machine learning (ML) technology improves and use cases grow, more companies are employing ML to optimize their operations through data. As a branch of artificial intelligence (AI), ML is helping companies to make data-based predictions and decisions based on scale. Here are some examples across the globe of how organizations in various industries are working with vendors to implement machine learning solutions:
Learning to Summarize with Human Feedback
Large-scale language models are becoming increasingly capable on NLP tasks. These models are usually trained with the objective of next word prediction on a dataset of human-written text. But this objective doesn't capture exactly what we want; usually, we don't want our models to imitate humans, we want them to give high-quality answers.
openai.com
"Lighter" AI Delivers a New Era of IoT
The Internet of things (IoT) is all about connected devices, and these devices can exist in many different settings – industrial, medical, consumer/home, transportation and more. The number of potential IoT devices is enormous as IoT becomes more popular and widely adopted over time. According to Statista, there are approximately 21.5-billion interconnected devices in the world.
ept.ca
AI at the Edge for Enterprise IoT
Enterprises are eager to use intelligent artificial intelligence (AI) chips to bring data analytics workloads down to the edge of IoT networks.
In four years, the size of the market for edge AI chips is set to surpass the equivalent for cloud architectures, reaching $12.2 billion against $11.1 billion for the cloud, according to ABI Research.
iotworldtoday.com
Mini Pupper: Open-Source, ROS Robot Dog Kit
Mini Pupper will make robotics easier for schools, homeschool families, enthusiasts and beyond. Picture a dog-shaped quadruped robot that can hop, trot, and run around, supporting 12-DOF, ROS (Robot Operating System) SLAM, Navigation, and OpenCV AI functions—while being inexpensive.
Smart City Accelerator Program
With proven expertise in commercially deployed solutions, program members include hardware and software providers, cloud solution providers, system integrators, design and manufacturing companies, as well as those offering end-to-end smart city solutions. By connecting members with those searching for smart city solutions, together we're accelerating the transformation of city infrastructure and services to help enrich people's lives.
qualcomm.com
Previous Issue November 3rd 2021
©2014-2022 Internet of Things and AIoT News | IoT and AIoT Weekly | Terms of Use | Privacy Policy | Sponsorship | Follow Us | Company


text:
Home / Album Reviews / Johnny Jackson & James Stiltner – A Tribute To Bill Napier
Johnny Jackson & James Stiltner – A Tribute To Bill Napier
Music Existence June 2, 2014 Album Reviews, Interview Leave a comment
A Tribute To Bill Napier is a new CD from the Hurley, VA based family band, Johnny Jackson and James Stiltner. The CD features Mr Jackson, on lead vocals and rhythm guitar, James Stiltner on lead guitar, mandolin, banjo, James's wife Cindi on bass and Edith Jackson providing lead and tenor vocals. James is a seasoned musician, playing in Sammy Adkins' Sandy Hook Mountain Boys.
We asked James to explain a little more about the family project.
Tell me a little more about Bill Napier.
JS: Bill Napier was one of the most respected sidemen that the Stanley Brothers ever had. He wrote the original "Daybreak In Dixie" that Ralph Stanley later used. He was also the first full-time guitar that the Stanley Brothers ever had, predating George Shuffler. His standout tracks included "Mountain Dew" "Raining Here This Morning" and "Over In the Gloryland". He then went on to form a partnership with Charlie Moore, and had a major hit with "Truck Driver's Queen".
What were your motivations behind the recording and what are your goals now that it's completed?
JS: Our motivation behind the recording is Bill has been one of the biggest influences on my lead picking, on the mandolin, banjo, and guitar. He was born about 20 miles from where I currently live. Our goals now that it is completed is that it will spread the word about Bill himself, and people will seek him and his recordings out.
Where did you get the songs from? Are they Bill's songs, or did he previously sing or record them?
JS: The songs are all either written by Bill (the instrumentals) or co-written with Charlie Moore.
What's your relationship to Johnny and Edith?
JS: Johnny and Edith are my grandparents, and Cindi Stiltner is my wife.
Finally, what's the significance of truck driving?
JS: The significance of the truck driving songs are those are the songs that Bill and Charlie Moore had their biggest hits with.
The aforementioned Truck Driver's Queen casts a warming, comforting air over the beginning of the album, with its rhythmic feel. Johnny Jackson voice is weathered but strong, and the guitar playing is excellent. Edith's voice too, is fascinating, a hold-over from the past which cuts through the surrounding music. The musicians are in control throughout the record, from the pacey, measured mandolin of Grundy Hoedown, to the intimate, traditional feel of Praise God I'm Ready To Go.
The record feels live, like a good, old-time family recording, which is what it is. James' headnodding, rolling banjo on Brushy Creek is thorough and professional, respectful and loving.
The album blends traditional country with elements of old time and bluegrass to create a fun family tribute to Mr Napier. Different tracks draw out different sections of the sound, with the Merle Haggard-like Guitar Pickin' Truck Driver contrasting nicely with the bright, happy, beguiling mandolin tune Roaring Creek. The closer, Twilight Swamp is another example of the fantastic picking that the family put into the album's instrumental pieces.
The Johnny Jackson Band have recorded a fitting tribute to Bill Napier, who would be proud of their taking of his music, and giving it to the world.
Find out more on Facebook or contact the band at thejohnnyjacksonband@yahoo.com
Tags bill napier bluegrass country Gideon Thomas johhny jackson traditional
About Music Existence
Previous Album Review: Adelitas Way – Stuck
Next Brand New Music Video from Up and Rising Canadian Pop Artist Lina Fouro
Country Chart-topper Lady Redneck Follows Top 10 iTunes Holiday Single with "The Christmas Song"
Million-plus Social Star Lady Redneck Releases New Christmas Classic, Veterans Day Video & More!
Singer Songwriter Jeremy Parsons Releases New Single "Tickin'"

redpajama_set_name: RedPajamaCommonCrawl


text:
Newly elected Hong Kong chief executive Carrie Lam formally appointed
Carrie Lam received her official certificate from Chinese Premier Li Keqiang in Beijing. Lam will become the first female leader of the semi-autonomous city in its 20 years under Chinese rule.
Carrie Lam has formally accepted her appointment as Hong Kong chief executive following her victory in the city's election in March.
On a four-day visit to Beijing, Lam met with Chinese Premier Li Keqiang in Beijing to receive her official certificate of appointment, followed by a meeting with Chinese President Xi Jinping.
Hong Kong activists fear crackdown after city election
Leaders of the 2014 Umbrella protest movement have received phone calls informing them of arrest and impending prosecution. The move comes one day after Carrie Lam was elected as Hong Kong's next leader. (27.03.2017)
'Independence is the hottest topic in Hong Kong'
Observers say that the Hong Kong Legislative Council election will be a lot different this time from the previous one held in 2012. DW spoke to analyst Victoria Hui about what is at stake in the vote for HK and China. (02.09.2016)
Hong Kong pro-democracy activist beaten by police handed prison sentence
The assult of Ken Tsang by seven police officers in 2014 was caught on tape, sparking outrage in Hong Kong. Now he has been given a jail term for resisting arrest. (30.05.2016)
Considered Beijing's pick to lead Hong Kong, Xi said Lam has demonstrated "a firm stance in loving the country and Hong Kong, a diligent, pragmatic and responsible work style, as well as rich administrative experience and ability to handle complicated situations," according to Xinhua news agency.
Lam received 777 votes from the nearly 1,200–member election committee on March 26 to become Hong Kong's first female leader and the fourth leader since the end of British colonial rule in 1997. Lam will formally take office on July 1. Xi is expected to visit to celebrate the 20th anniversary of the handover from British to Chinese rule. Protests are expected for Xi's visit.
Lam has said she will unify the people of Hong Kong and make housing more affordable in one of the world's most expensive property markets.
Unrest in Hong Kong
Lam is expected to continue the "one country, two systems" formula once she takes office. Hong Kong is a semi-autonomous city, with its own government, legal and monetary systems, and immigration policy despite being under Chinese rule.
But there are growing demands by Hong Kong citizens for Hong Kong to break away from China, particularly following the pro-democracy Umbrella Movement in 2014. Lam said Tuesday she will have none of it.
"On the issue of Hong Kong independence, in line with what the premier has said, there is no future and no room," said Lam.
Locals are growing increasingly concerned over Beijing's potential to increase Chinese control over Hong Kong. Pro-democracy protests, including the Umbrella Movement, were quelled in recent years, adding to their worries.
kbd/jm (AFP, dpa, Reuters)
Related Subjects Xi Jinping, Asia, People's Republic of China, Hong Kong
Keywords Hong Kong, Carrie Lam, Asia, Xi Jinping, Li Keqiang, China, UK, anniversary
Permalink https://p.dw.com/p/2b5UH
Coronavirus digest: Netherlands introduces curfew to halt spread of new variant 23m ago
#MeToo movement takes off in Greece 1h ago
Russian activist says he toured Putin's rumored palace 1h ago
Coronavirus: Joe Biden signs order requiring all US arrivals to quarantine 1h ago
Italian police bust massive Mafia fraud scheme 1h ago


The Freedom Code, winner of the Eric Hoffer Award for Books in the self-help category, is a unique motivational guidebook that gives proven solutions to improve finances, health, and relationships. The Freedom Code is packed with inspirational stories, time-tested techniques, and easy-to-follow activities that will increase self-empowerment and boost personal confidence.
This book provides the necessary tools needed to rise above personal blocks and fears. It re-ignites passions and gives direction for your life's purpose. And it give a complete outline for creating an effective action plan to achieve personal dreams and goals today.
Anyone seeking to improve their lifestyle, family or business relationships, health, finances, or community spirit, will benefit from this motivational masterpiece.


Also known as "land of the Mermaids", the tip of this area (Punta Campanella) seems it wants to reach out and touch with a finger the beautiful Capri.
The myth says that, Ulysses, the protagonist of the much- narrated Odyssey, was tempted by the Mermaids song, right here in the Bay of Jeranto, besides the call of the beauty of this land has always fascinated people from everywhere. This stripe of land separates the Gulf of Naples from the Gulf of Salerno: on one side the Vesuvius with the lovely Sorrento Peninsula and on the other side the Amalfi coast and its beautiful Islands. Massa Lubrense with its small villages, is a land of people who know each other and still keep their folklore. Rich in vegetation that thrives on the coast, its climate gives birth to fruits and vegetables with sublime flavors. The tour includes the visit of the most gorgeous spots, subjects of postcards known all over the world and a gourmet break to know the typical produce created with love and tradition.
A journey trough the past.


Hammer Brothers return in Super Mario Bros.:The Lost Levels, known in Japan as Super Mario Bros. 2. Here, they are more common than they are in Super Mario Bros. While they remained unchanged for the first six worlds of the game, starting at World 7, the Hammer Brothers will always pursue Mario and Luigi, instead of staying at one location.


text:
\section{Introduction}

In this paper we   are motivated by the fact that one of the reasons why von Neumann
entropy  behaves differently from the Shannon entropy is rooted in its
nonmonotonicity.  A consequence of this fact is that many results and techniques of
classical information theory do not smoothly generalize; one has to frequently overcome
the obstacles imposed by the breakdown of monotonicity, often manifesting in various
disguises. In classical secret sharing, one makes extensive
use of information theoretic inequalities to bound the performance of secret sharing
schemes, see  \cite{capocelli93,kurosawa94,blundo94,vandijk95,csirmaz97,beimel08}. In most cases these techniques do not appear to carry over to quantum secret
sharing schemes, at least not easily. Quantum secret sharing has grown rapidly since its inception in \cite{hillery99}. Despite the growing body of literature on quantum secret sharing, see for instance \cite{hillery99, cleve99, gottesman00, smith00, markham08,keet10} and the
references therein, only a few of them,  most notably \cite{imai04,rietjens05}, have succeeded in employing information theoretic methods for quantum secret sharing.

This paper attempts to  contribute along this direction by studying the von Neumann entropy of subsets of a given quantum
state. Of course, for an arbitrary quantum state we cannot expect a relation similar to the
Shannon entropy. However, by imposing some restrictions on the  quantum states, namely
by  considering a class of quantum secret sharing states,
we are able to prove something definite.

Our main result is that if we consider
a class of secret sharing quantum states, then we can prove that the
von Neumann entropy is
monotonically nondecreasing for certain subsystems of the quantum state, namely the
unauthorized sets. The secret sharing states that we consider in this correspondence are those
arising from a realization of the quantum secret sharing scheme via monotone span programs in a ``normal form''.
We also show that for the subsystems that are authorized, the
entropy is monotonically nonincreasing.

\section{Background}
Before presenting our main result, we review briefly the relevant background. In this
paper a quantum secret sharing scheme refers to a protocol to distribute an unknown
quantum state to a group of $n$ players so that only authorized subsets of players can
reconstruct the secret quantum state \cite{hillery99, cleve99, gottesman00}. The state
received by any participant is called a share.
The set of players is denoted as $P= \{1,2,\ldots,n \}$. The
collection of authorized sets, denoted as $\Gamma$, is called the access structure
and the collection of unauthorized sets, denoted $\mc{A}$, is called the adversary
structure. The dual access structure is defined as
\begin{eqnarray}
\Gamma^\ast = \{ A\subseteq P \mid \bar{A} \not\in \Gamma \},\label{eq:dualAcc}
\end{eqnarray}
where $\bar{A}= P\setminus A$.

An access structure $\Gamma$ can be realized by a  quantum
secret sharing scheme if and only if it satisfies $\Gamma \subseteq \Gamma^\ast$, see \cite{smith00,gottesman00}.
An access structure is said to be self-dual if $\Gamma=\Gamma^\ast$. A self-dual access structure can be realized as quantum secret sharing scheme so that pure states are encoded as pure states; the associated
secret sharing scheme is said to be a pure-state scheme. If $\Gamma\subsetneq \Gamma^\ast$, then the associated secret sharing scheme encodes some pure state into a mixed state;
such schemes are called mixed-state schemes.

An authorized set is said to be minimal if every proper subset of it is unauthorized.
Minimal authorized sets completely characterize an access structure and  we denote
the collection of minimal authorized sets of $\Gamma$ by $\Gamma_{\min}$.

A secret sharing scheme is said to be connected if every participant occurs in some
minimal authorized set.
A participant who does not occur in any minimal authorized set is said to be unimportant
and the share associated to that player can be discarded without loss.
We can assume that the access structure is defined on the reduced  set
of players excluding the unimportant players. In this paper we
consider only connected secret sharing schemes, in other words, every player is important.

Closely related to this idea of important share is the notion of dispensable components
of a share \footnote{I would like to thank Daniel Gottesman for bringing up this point.}. Suppose a part of the share received by a player does not play a role in the
reconstruction of the secret in any of the minimal authorized sets to which the player
belongs, then that part of the share can be discarded without any loss. We call such parts
of the share dispensable components and indispensable otherwise. One way to create such
components is to distribute additional quantum states that are unrelated to the secret.
Such components neither aid nor hinder a subset's
ability to reconstruct the secret.
The  access structure realized by the scheme is unaffected if such
components of the share are discarded. We assume that the secret sharing schemes considered in this paper are devoid of such dispensable components in any share.

\begin{defn}[CSS secret sharing schemes]
A pure-state secret sharing scheme  $\Sigma$ is said to be a CSS secret sharing scheme if
the encoding for the scheme is of the form
\begin{eqnarray}
\ket{s} \mapsto \frac{1}{\sqrt{|C|}}\sum_{c\in C} \ket{s \overline{X}+c},\label{eq:cssScheme}
\end{eqnarray}
where $s\in \mathbb{F}_q$ and $\overline{X}\in \mathbb{F}_q^n$.
A mixed-state secret scheme is said to be CSS type if it can be obtained by discarding one
share of a pure-state CSS scheme.
\end{defn}
As mixed-state schemes can be obtained from pure-state schemes, see \cite{gottesman00},   without loss of generality we can focus our attention on pure-state schemes. In terms of access structures this implies we can focus on the self-dual access structures.

Smith proposed a method to realize a quantum secret sharing scheme for any quantum
access structure using monotone span programs. We will need parts of that construction
to prove our result and therefore provide a quick review of the same. Further details can
be found in \cite{smith00}.

\begin{defn}[Montone span program]
A monotone span program $\mc{M}$ is a triple $(\mathbb{F}_q, M, \psi)$ consisting of a
matrix $M\in \mathbb{F}_q^{d\times e}$ over $\mathbb{F}_q$ and surjective function $\psi : \{1,2,\ldots, d \} \rightarrow P$. The program is said to accept $A\subseteq P$ if and only if
\begin{eqnarray}
\varepsilon_1=(1,0,\ldots, 0)^t \in \im(M_A^t), \label{eq:mspCond}
\end{eqnarray}
where $M_A$ is the submatrix of $M$ and consists of all the rows that correspond to the participants in $A$.
\end{defn}

We say $M$ is the span matrix of the span program.
A monotone span program is said to compute an access structure $\Gamma$  if
$\mc{M}$ accepts $A\in \Gamma$ and rejects $A\not\in \Gamma$.
It follows that for any unauthorized
set $B\subseteq P$, we must have $\varepsilon_1 \not\in \text{Im}(M_B^t)$. Alternatively,
there exists some $v=(v_1,\ldots, v_e )\in \mathbb{F}_q^e$ such that $M_B v = 0 $ and $v_1\neq 0$.

For every access structure $\Gamma$, we can realize it using a
monotone span program in a ``normal form''. This is not necessarily efficient
but these realizations provide us with the secret sharing states which are central for our
discussion.  We caution the reader that our terminology of  span programs, especially the
usage of normal form for  monotone span programs,  does not follow the standard
terminology in the literature on span programs.

\begin{defn}[Normal form monotone span program]
Suppose that $\Gamma_{\min} =\{ A_1,\ldots A_k\}$ and let $|A_i|-1=r_i$.
Also let, $r=\sum_{i} |A_i|$ and $c=r-k=\sum_i r_i$. The monotone span program that
computes $\Gamma_{\min}$ over $\mathbb{F}_q$ has the span matrix $M$ as given in equation~\eqref{eq:msp}.  The mapping
$\psi$ is given as follows:
The rows corresponding to submatrix $I_{r_i}$ corresponds
to the first $|A_i|-1$ participants of the authorized set $A_i$. The row of the form
$(1, 0,\ldots, 0,-\mbf{1},0, \ldots, 0)$ is labeled by the last participant of  $A_i$ and
$-\mbf{1} =(-1,\ldots,-1) \in \mathbb{F}_q^{r_i}$.
\end{defn}
\begin{eqnarray}
M= \left[ \begin{array}{ccccccc}
&I_{r_1}&&&&\\
1&-\mbf{1}&&\\ \hline
&&I_{r_2} &&&\\
1&&-\mbf{1}&\\ \hline
\vdots&&&\ddots\\ \hline
&&& &I_{r_i} \\
1&&&&-\mbf{1}\\ \hline
\vdots&&&&&\ddots\\ \hline
&&&&& &I_{r_k} \\
1&&&&&&-\mbf{1}\\
\end{array}\right]\label{eq:msp}
\end{eqnarray}

Classically this matrix defines the encoding for the secret sharing scheme.
The scheme implicitly assumes an ordering of the participants and the use
of $c$ random variables in addition to the secret. For each minimal authorized set $A_i$, the scheme distributes
$s_{i,1},s_{i,2}\ldots, s_{i,r_i}$ and $s-\sum_j s_{i,j}$, where
$s_{i,j}$ for $1\leq j\leq r_i$ are random variables. More precisely,
$s_{i,j}$ is distributed to the $j$th player of $A_i$ for $1\leq j\leq r_i$
and $s-\sum_{j}s_{i,j}$ to the last player in $A_i$.
Considering the distribution scheme for the entire set of players we distribute
 $u M^t$,
where $u =(s, s_1,\ldots, s_{c})$.
In the normal form construction, no player is unimportant and no share has
a dispensable component.

We make the following useful observations about the structure of $M$ as given in equation~\eqref{eq:msp}.
\begin{compactenum}[i)]
\item The rows associated to the players in any authorized set are linearly
independent.
\item The rank of $M$ is given by $1+r_1+\cdots+r_k$.
\item
The rows associated with any given participant are linearly independent.
\item For each column $2\leq j\leq c+1$ in $M$, there are exactly two rows in $M$
which have nonzero support on $j$ and they both belong to the same authorized set.
\end{compactenum}
For a vector $v=(v_1,\ldots, v_n)\in \mathbb{F}_q^n$, we refer to the support of $v$
as the set of coordinates for which $v_i\neq 0$.

In the quantum secret sharing scheme due to Smith \cite{smith00}
the encoded state is given by
\begin{eqnarray}
\ket{s} \mapsto \frac{1}{\sqrt{q^c}}\sum_{u\in \mathbb{F}_q^{c+1}:u_1=s} \ket{u M^t},\label{eq:mspQss}
\end{eqnarray}
where we assume that the $u=(s,s_1\ldots,s_c) \in \mathbb{F}_q^{c+1}$. Please note that we do not
need to use any additional random variables in the quantum secret sharing schemes
as opposed to the classical schemes. We also note that the construction in \cite{smith00}
will hold for span matrices that are not in normal form; however, the associated access
structure must still be self-dual.
The reader might find it helpful to refer to a small example given in the appendix.

We denote the  von Neumann entropy of a quantum state with the density matrix $\rho$
by $\s(\rho)=  -\Tr (\rho \log_2 \rho)$.
The following relation on the entropies of the authorized and unauthorized sets of
a quantum secret sharing scheme realized by monotone span programs was shown in
\cite[Lemma~17]{rietjens05}.
\begin{lemma}[\cite{rietjens05}]\label{lm:entSets}
Suppose $\mc{M} =(\mathbb{F}_q, M, \psi )$  is a monotone span program realizing a quantum access structure
$\Gamma$. Let $A \in \Gamma$ and $B=P\setminus A$. Let $\rk(M_A)=a$, $\rk(M_B)=b$ and
$\rk(M)=m$ and $\s(S)$ the entropy of the secret $S$.
 Then we have
\begin{eqnarray}
\s(A) & = & (a+b-m)\log_2q + \s(S) \label{eq:entAuthSet}\\
\s(B) & = & (a+b-m)\log_2q \label{eq:entunAuthSet}
\end{eqnarray}
\end{lemma}

\section{Entropic Inequalities}

In this section we  prove our main result for monotonicity of entropy for the
unauthorized sets of a quantum secret sharing scheme realized via the
construction given in the previous section. We need the following lemma.

\begin{lemma}\label{lm:submatIndep}
Suppose that $\mc{M}=(\mathbb{F}_q,M,\psi)$ is a monotone span program in normal form
computing the
access structure $\Gamma$. Let  $A\cup B \cup \{p \}=P$ be a partition of $P$ where $B\in
\Gamma$. Let $A_i\in \Gamma_{\min}$ be a minimal authorized set that contains $p$.
Denote by $M_{\{A_i \}}$ the submatrix of $M$ with $|A_i|$ rows that correspond to
the players in $A_i$. Then one of the following holds:
\begin{compactenum}[i)]
\item If $A_i \subseteq \bar{A}$, then any row in $M_{\{A_i \}}$ is linearly dependent in
$M_{\bar{A}}$ and linearly independent in $M_{A'}$, where $A'=A\cup \{ p \}$.
\item If $A_i \not\subseteq \bar{A}$, then any row in $M_{\{A_i \}}$ is linearly independent in
$M_{\bar{A}}$ and linearly independent in $M_{A'}$.
\end{compactenum}
\end{lemma}
\begin{proof}
Since $A_i$ is authorized, $\varepsilon_1$ is in $\im (M_{A_i}^t)$ and
there exists some linear combination of the rows of $M_{A_i}$ such that
\begin{eqnarray*}
\sum_{j=1}^{|A_i|} R_j =\varepsilon_1,
\end{eqnarray*}
where $R_j$ are the rows of $M_{A_i}$. Without loss of generality let $R_1$ be the
row associated with $p$ in $M_{\{A_i \}}$.
Since $\bar{A}\setminus \{ p\} ={B}$ is still an authorized set, $\varepsilon_1$ is also in
$\im(M_{{B}}^t)$ and there exists a linear combination of rows in ${B}$ such that
\begin{eqnarray*}
\sum_{j=1}^{|M_{B}|} \beta_j Q_j =\varepsilon_1 =  R_1 +\sum_{j=2}^{|A_i|} R_j,
\end{eqnarray*}
where $Q_j$ are the rows of $M_{{B}}$ and $|M_B|$ denotes the number of rows of $M_B$. Then clearly, $R_1$
can be expressed as a linear combination of the rows in $M_{{B}}$.

Next, we show that $R_1$ is independent in $M_{A'}$.
Assume that on the contrary that $R_1$
can also be expressed as a linear combination of the rows in $M_{A'}$ (excluding $R_1$).
Now observe that the rows corresponding to $A_i$ are of two types: either they have a
single non-zero element or they have $1+|A_i|$ nonzero elements.
Permuting if necessary we can assume that $R_1$ is of the form $f=(0,1,0,\ldots, 0) \in \mathbb{F}_q^{c+1}$ or $g=(1,\mbf{-1},0,\ldots,0) \in \mathbb{F}_q^{c+1}$.  A necessary condition for
$R_1$ be a linear combination of rows of $M_{A'}$ is that the support of these rows must
contain the support of $R_1$. Keeping in mind that $A_i\setminus \{ p\} \subseteq B =\bar{A'}$, we
infer that if  $R_1=f$, then no row in $M_{A'}$ has overlap with the
support of $R_1$. If $R_1=g$, then
some rows of $M_{A'}$ can have support in the first coordinate but not in the next
$|A_i|-1$ coordinates, where $R_1$ is nonzero. Therefore it must be the case that $R_1$ is independent in
$M_{A'}$. This proves the first part of the lemma.

Now let us consider the case when $A_i \not\subseteq \bar{A}$.  If $R_1=g$, then whether
it is in $M_{\bar{A}}$ or $M_{A'}$, the rows in $\bar{A}$ do not contain the support of
$R_1$ and similarly the rows in $M_{A'}$ do not contain the support of $R_1$. Hence it is
independent in both $M_{\bar{A}}$ and $M_{A'}$.  If $R_1=f$, then $g$ corresponds to some
other participant $p'$ who is in either $\bar{A}$ or $A'$ but not both as
$A'\cap \bar{A} =\{ p\}$. Thus $g$ is in one of the  rows of $M_{A'}$ or $M_{\bar{A}}$ but not
both. Consequently, $R_1$ is independent in one of $M_{A'}$ or $M_{\bar{A}}$.

Suppose that both $R_1$ and $g$ are in the same set $S$, where $S$ is either $A'$ or
$\bar{A}$. Note that
$A_i\not\subseteq \bar{A}$ and neither is $A_i\not\subseteq A'$ because
$A'\not\in \Gamma$. It follows that $M_{\{ A_i\}}$ must contain other rows and the support
of $g$ extends beyond the support of $R_1$ and the first coordinate.
Then since $g$ is the only element whose support overlaps with $R_1$, any linear
combination of rows that generates $R_1$ must include $g$. We could rewrite this linear
combination to express $g$ as a linear combination of the elements of $S$. But we have
already seen that $g$ is linearly independent in both the sets $A'$ and $\bar{A}$.
Therefore, it follows that such a
combination does not exist and $R_1$ is independent as well. This proves the second part
of the lemma.
\end{proof}

With this preparation we  are now ready to prove our central result.
\begin{theorem}\label{th:monotoneMSP}
Suppose that an  access structure $\Gamma$ is realized using the normal form
monotone span construction.
Let $A\subseteq B \subseteq P $.Then
\begin{eqnarray}
\begin{array}{cl}\s(A) \leq \s(B) & \text{ if } A, B\not\in \Gamma \label{eq:unAuthEntropy}\\
\s(A) \geq \s(B)& \text{ if } A, B\in \Gamma \label{eq:authEntropy}
\end{array} \label{eq:entropyMonotone}
\end{eqnarray}
\end{theorem}
\begin{proof}
Let us first show this result assuming that $\Gamma $ is a self-dual access structure.
The proof relies on Lemma~\ref{lm:entSets}.
Without loss of generality we can assume that $|B\setminus A | = 1$ in other words, $B\setminus A = \{ p\}$.
Let
\begin{eqnarray*}
A^p =\{A_i \in \Gamma_{\min}: A_i \subseteq \bar{A} \mbox{ and } p\in A_i \}\\
\bar{A}^{p} = \{A_i \in \Gamma_{\min} : A_i \not\subseteq \bar{A} \mbox{ and }  p\in A_i\}
\end{eqnarray*}

Suppose that  $A^p\neq \emptyset$.
Then there exists some $A_i\in \Gamma_{\min}$ such that $p\in A_i \subseteq \bar{A}$.
Consider the rows associated to this set in $M$, i.e.
$M_{A_i}$. By Lemma~\ref{lm:submatIndep}, this row is dependent in $M_{\bar{A}}$
and therefore removing it will not change the rank of the resulting submatrix. On the
otherhand, by the same lemma we know that this row is independent in $M_{A'}$, where
$A'=A\cup \{ p\}$, therefore the rank of the matrix obtained by adding this
row to $M_A$ is greater by one.

Repeating
this process for all the $A_i$ in $A_p$, we obtain a matrix with fewer rows than $M_{\bar{A}}$ but having the same rank. On the other hand, the
rank of the matrix obtained by  adding these rows to $M_{A}$ increases for each element in $A^p$.

Now consider an authorized set $A_i\in \bar{A}^p$. Since $A_i$ is not a subset of $\bar{A}$,
it follows that some participant of $A_i$ must be in $A$. By Lemma~\ref{lm:submatIndep},
the row associated with $p$ in $M_{\{A_i \}}$ is independent in $M_{\bar{A}}$ as well
as $M_{A'}$. Therefore, the rank of the submatrix obtained by removing this row
from $M_{\bar{A}}$ diminishes by one while the submatrix obtained by adding this row to
$M_{A}$ increases by one. Once again repeating this process for all the
$A_i \in \bar{A}^p$ we see the the rank of $M_{A'}$ increases by $|\bar{A}^p|$, while the
rank of the submatrix obtained by removing all the rows associated with $p$ in $\bar{A}^p$
reduces its rank by $|\bar{A}^p|$.

Therefore adjoining to $M_A$ all the rows associated with $p$ gives us $M_{\bar{B}}$ and
while, removing them from  $M_{\bar{A}}$ gives $M_B$. From the preceding discussion we see that $\rk(M_{\bar{B}})=\rk(M_{\bar{A}} ) - |\bar{A}^p|$ and
$\rk(M_{B}) =\rk(M_{A}) + |A^p| + | \bar{A}^p|$. By Lemma~\ref{lm:entSets}, the entropy of $B$ is given by
\begin{eqnarray*}
\frac{\s(B)}{\log_2 q}& =& \rk(M_B)+ \rk(M_{\bar{B}})-\rk(M) \\
&=&  \rk(M_{A}) + |A^p| + | \bar{A}^p| +\rk(M_{\bar{A}}) - |\bar{A}^p|\\&&-\rk(M)\\
&=& \rk(M_{A})+\rk(M_{\bar{A}})    -\rk(M)+ |A^p|\\
&=&\frac{\s(A)}{\log_2 q}+|A^p| \geq \frac{\s(A)}{\log_2 q}
\end{eqnarray*}
If $|B\setminus A | >1$, we can inductively apply this argument to
every consecutive  pair of sets in the following chain
\begin{eqnarray*}
A= B_k\subset B_{k-1}\subset \cdots \subset B_1\subset B_0=B,
\end{eqnarray*}
where $|B_{i+1}\setminus B_i |=1$.
Applying to each adjacent pair in the above chain gives us
\begin{eqnarray*}
\s(A) \leq \s(B_{k-1}) \leq \cdots \leq \s(B_1) \leq \s(B).
\end{eqnarray*}
This proves the theorem for the case when the access structure is self-dual and
$A, B\not\in \Gamma$.

If  $A \subseteq B\in \Gamma$,
 then we note that both $\bar{B} \subseteq \bar{A} \not\in \Gamma$ and we must have $S(\bar{B}) \leq S(\bar{A})$. But we also know that for a self-dual access structure $\s(\bar{A}) = \s(A)-\s(S)$ if $A$ is authorized \cite{rietjens05,imai04}. Therefore,
$\s(B)-\s(S) \leq \s(A)-\s(S)$ and this proves the theorem when $\Gamma$ is self-dual.

Now suppose that $\Gamma$ is not a self-dual access structure, then we can purify it to
get a self-dual access structure $\overline{\Gamma}$ for which
equation~\eqref{eq:entropyMonotone} holds. Recall that the
authorized (unauthorized) sets of $\Gamma$ are  also authorized (unauthorized) sets of
$\overline{\Gamma}$ and the associated shares are obtained by tracing out the additional
participant used for purification, see \cite{gottesman00} for details about purification.
Therefore, the result holds for any quantum access structure implemented via the
normal form  monotone span construction.
\end{proof}

\begin{corollary}\label{co:maximalEntropy}For an access structure realized via the
normal form monotone span construction, the following relations hold:
Among the authorized sets the minimal authorized sets of an access structure have maximal
entropy and among the unauthorized sets the maximal unauthorized sets have maximal
entropy.
\end{corollary}
Please note the the above corollary does not imply that all minimal (maximal) authorized
(unauthorized) sets have the same entropy.
Further, along with Lemma~\ref{lm:entSets} it implies that if we consider a minimal authorized set, the entropy of the sets obtained by either
adding participants or removing participants from the minimal authorized set
will be lower.

\section{Discussion}
An obvious question is if these results can be extended to all quantum secret sharing
states arising via monotone span programs and more generally, to all secret sharing
states.  While this result might be extended to
other classes of secret sharing states,  it does not seem to generalize
for arbitrary quantum secret sharing states.
Nonetheless, these results  could be prove to be useful and provide additional
interesting insights into quantum secret sharing states
in that by partly recovering the monotonicity for the von Neumann entropy we may be
able to prove new constrained  inequalities for the von Neumann entropy.

\section*{Acknowledgment}

This research is sponsored by CIFAR, MITACS and NSERC.
I would like to thank Robert Raussendorf and Daniel Gottesman  for helpful discussions.

{

redpajama_set_name: RedPajamaArXiv


text:
☰
🏠 HOME
ABOUT US ▼
The Word Foundation
LIBRARY ▼
Thinking and Destiny
Man and Woman and Child
Democracy Is Self-Government
Masonry and Its Symbols
Moments with Friends
ORDER ▼
🔍 ▼
Search The Word Foundation site
Search editorials from The Word magazine
Search Living / Living Forever editorials
Vol. 16 No. 2 — Meditation
Vol. 14 MARCH, 1912. No. 6
Copyright, 1912, by H. W. PERCIVAL.
(Continued.)
LIVING is the state in which each part of a structure or organism or being is in touch with Life through its particular current of life, and where all parts work coordinately to perform their functions for the purpose of the life of that structure, organism or being, and where the organization as a whole contacts the flood tide of Life and its currents of life.
As people of the world, are we living? We are not.
Man as a physical structure, as an animal life, as a thinking entity, as a divine being are together an organization, but an imperfect organization. These entities each interfere with or prevent the action of the other, and so they impede and prevent contact with their respective currents of life. The organization of man as a whole is not in touch with the flood tide of Life.
Structures and organisms are included in the organization of man, but man is more than structure and organism. He is a thinking entity and a divine being. The infinite looks out at and into itself through the organization of man, but all parts of the organization of man are not conscious of themselves nor of each other, nor conscious as a whole. The organization of man as a whole is unconscious of the sources of its life and its being, and is not conscious of the infinite which is through it. One part of the organization of man dominates the others. Man is an undeveloped, imperfect and inharmonious organization. Men are dissatisfied and at war with themselves and with others. Men are in a perturbed, undeveloped and immature state. Men do not live naturally as animals, nor do they live as divine beings with intelligence. A few types may illustrate this.
The laborer digging for a railroad across an alkali desert, or in the oozy bottom of a city sewer will at noon hour munch greedily at an onion, a bit of cheese and a hunk of black bread, and after his day of toil and his coarse fare at evening, he huddles together with other laborers in a low shed, or in a stuffy room with his family to sleep through the night for his next day of toil. There is little room in his life for the divine spark to enlighten his clay.
There is the mechanic who prides himself on his skill and with some importance and with jealousy guards some small secret of his craft from his fellow workmen, and with spartan heroism defends his union and his alleged rights.
There is the clerk who at his desk or behind a counter has long hours for a small wage and who with easy gait or a forced swagger stints his stomach to appear smartly dressed.
With less regard to dress, eager to gain favor and his pay, the fat cook prepares rich viands, rare dishes and new delicacies for the gourmand. The gourmand with cheerful glow, chuckles contentedly as each morsel passes his palate, and adds to the bulk and sensitiveness of his frame that is about to turn into a hot-bed of diseases, and at the end of the repast he lingers and plans, looking forward to others to come.
A stranger to plenty and to rich foods is the underfed woman in her needy room, who, with an occasional raising of her bent form for an anxious glance at her pallid child on its bed, plies her needle until her work is done and then gathers, with a yearning look behind, her scant garments closer as she goes through the biting wind to get a pittance for her work, which will buy enough to hold life in her child. Care has stamped its mark on her, and her features show that hunger has pinched her to the bone.
Beyond the needs of cruel want but with keen-edged hunger, the financier battles in the game of wealth. He plays for the kingdom of money. By his doings channels of the world's supplies are opened and closed, stocks inflated, values depreciated, panics brought on, enterprises and whole industries wrecked, families made homeless, all in proper legal forms, while he moves men and courts and legislatures who are his pawns, and scatters bounties with a lavish hand or strangles commerce and institutions in his grasp. In the end he finds he is a broken reed, though he be accredited a prince of the world.
There is the lawyer, a puppet of universal law, though he should be its conscious agent. The lawyer and his business is created and maintained by the money power as well as by the avarice and cunning and iniquity of the people. He is the draughtsman of the man made laws and the instrument used to break or distort them. He is made to draw forms to legalize unlawful courses and is employed to defend them. He will engage to defend a man or is ready to prosecute him. His mind is at the service of either side and he receives loudest praise and most liberal reward when he secures freedom for criminals, weaves a legal net around his opponents, wins a case when the merits are overwhelmingly against him, and seems to prevent the administration of justice.
(To be continued.)
The Word Foundation, Inc. | Publishers of Thinking and Destiny


Advance A/C is a full-service residential and commercial HVAC Contractor, licensed in the State of Florida. We offer new installations, repairs, maintenance contracts, service and air duct cleaning from the Upper Keys to Broward County. We provide professional customer service and are fully bilingual (English and Spanish). Contact us today for all your air-conditioning needs.


text:
Art of the Islamic and Indian Worlds Including Oriental Rugs and Carpets
This lot will be removed to Christie's Park Royal.… Read more
A HIGHLY UNUSUAL SILK AND METAL-THREAD KOUM KAPI RUG
ISTANBUL, WEST ANATOLIA, CIRCA 1920
Of Ottoman velvet design, full silk pile throughout, a couple of small faint surface stains and minute restorations, overall good condition
6ft.4in. x 4ft.4in. (192cm. x 133cm.)
Behnaz Atighi Moghaddam
BAtighiMoghaddam@christies.com 44 20 7389 2509
The knot count is approximately 9V x 9H per cm. sq.
The 'Koum Kapi' group of silk rugs were woven in Istanbul by Armenian weavers who settled in the area within the city walls of the same name, which translates as 'Sand Gate'. Following the efforts of two Armenians, Zara Agha and Apraham Agha at the very end of the 19th century, the first looms of what was to become the 'Koum Kapi' school were set up in Istanbul. The technical ability of their weavers and the fine quality of their materials, predominantly silk and metal-thread, resulted in a long tradition of excellence (George Farrow with Leonard Harrow, Hagop Kapoudjian, London, 1993, p.11). These weavers were greatly inspired by the masterpieces that surrounded them as residents of the spectacular Ottoman capital, including 16th century Persian Safavid carpets in the collection of the Imperial Treasury at the Topkapi Palace. Carpets, books and mosque decorations in the highly refined Ottoman court style that could be seen in the treasuries and mosques of the old city also served as inspiration, (Pamela Bensoussan, 'The Master Weavers of Istanbul', Hali 26, 1985, p.34).
This impressive silk and metal-thread Koum Kapi rug combines elements originally imported from luxurious Italian textiles but with motifs that are recognizably from the Ottoman decorative repertoire of the 16th and 17th centuries. At the turn of the 17th century the very best velvets were woven in the court ateliers of Bursa or Istanbul with the most attractive of all Bursa velvets bearing large-scale designs, where a floral or vegetal form is enclosed within, or flanked by, two large serrated leaves, see Nuhran Atasoy, Walter B Denny, Louise W. Mackie and Hulya Tezcan, Ipek, The Crescent and the Rose, 2001, p.308, fig.319. The depiction of serrated palmettes decorated with smaller floral motifs was very popular amongst the Bursa velvet weavers, and has been adopted by the Koum Kapi weavers on the present lot. For two closely related 17th century examples, see Atasoy, op.cit, figs.336 & 337. The former Ottoman ogival lattice design has been adapted further, into a more complex arrangement of interlinked arabesques on the present lot, but which retain the delicate chains of miniature flowerheads. By simulating the Ottoman velvet design, the Koum Kapi weaver has been required to use substantially more metal-thread in its design than is normally found on rugs from this group, which would have required greater technical ability on the part of the weaver, and considerably more money on the part of the individual who commissioned such a piece.
It has not been possible to find a direct comparable for this unique Koum Kapi rug and although unsigned, it was without question, woven in one of the master atelier in Istanbul where the great textile traditions and expertise of the Ottoman Empire continued in the twentieth century.
More from Art of the Islamic and Indian Worlds Including Oriental Rugs and Carpets


Nothing can dampen the excitement of pregnancy like morning sickness.
The name, however, is very misleading as morning sickness can happen at any time during the day or night. It is most common during the first trimester, but for some women morning sickness lingers throughout pregnancy.
A Caesarean section (C/S) is performed when natural birth is impossible or unsafe.
The operation may be performed before labour begins, if there are medical reasons for not going through labour and natural birth, or if the health of the mother or baby may be in danger.
Remember when you went shopping and your child eyed a toy they wanted but you had no intention of buying it?
Bullying is when one child picks on another child repeatedly. It can be physical, verbal or over the internet and social media.
Here we have the funniest, cutest and most adorable videos of children doing the most funny things you could ever think of!
If you haven't already, now is a great time to establish a bedtime routine for your toddler.
Not only does a routine ease the transition from being awake to being asleep, it also gives mom and dad some time to relax and spend quality time together at the end of the day.
The best way to give your baby the best start in life is to get your body baby ready, before trying to conceive. Not only will this increase your chances of getting pregnant, it will also set you up for a healthy pregnancy.
Children see strangers every day in stores, in the park, and in their neighbourhoods. Most of these strangers are nice, normal people, but a few may not be.
You've made it through pregnancy, the birth of your child and have adjusted to life as a parent, and all that goes with it. This includes the cost associated with the new member of the family.
With the winter school holiday season here, the Motor Industry Workshop Association (MIWA) urges parents to invest in car seats for their children and to strap them in when on the road.
Vishal Premlall, director of MIWA, pointed out to parents that if you have a collision at 50kph with a baby on your lap, the child will be hurled through the windscreen with an impact similar to that of falling from a three-storey window or being hit by a 3.5 tonne elephant.
Alternatively the child will be crushed against the dashboard by the force of your body weight which is 30 times heavier at the moment of impact.
"The fact is that it is against the law not to strap your child in. According to the 22nd National Road Traffic Amendment published in May 2015, children under the age of three are required to be strapped into a car seat. Besides the threat of a fine, should a driver be caught with a child not buckled in, the reality of what can happen to a child in the event of an accident should motivate drivers to do the right thing," he said.
Over and above that the majority of brain damage cases in children under the age of five are directly related to injuries sustained during car accidents.


The Tax Department collects City of Bartlett Business Gross Receipt Taxes and property taxes, auction payment, and processes Business Licenses, Beer Permits and other miscellaneous revenues.
Taxes are due on December 1st and are payable through February 28th of the following year.
A representative from the Shelby County Trustee's office will be at Bartlett City Hall on Wednesdays in October and November and on Wednesdays and Fridays from December through February: 8:30 a.m - 1 p.m. and 2 p.m. - 4:30 p.m.
Shelby County Payment Kiosk, year-round, accepts personal checks and credit cards during regular City Hall business hours.


text:
Karl Rau ist der Name folgender Personen:

* Karl Rau (General) (1884–1971), deutscher General-Ingenieur
 Karl Rau (Politiker) (1913–1956), deutscher Politiker, Bürgermeister von Heidenheim
 Karl Ferdinand Rau (1798–1874), württembergischer Landtagsabgeordneter
 Karl Heinrich Rau (1792–1870), deutscher Nationalökonom und Agrarwissenschaftler

redpajama_set_name: RedPajamaWikipedia


text:
IT&Software
World Media
The Last Watch Trailer Reminds There's a Documentary After the Series Finale
by Lana Bennett
The season has not just saddened the audience but has even disappointed most.
Now, finally, we are in season 8, which marks the culmination of nearly a decade-long journey.
More news: James Wan-Produced Mortal Kombat Film Finally Finds Its Director
Though GoT will be no more after May 19th-on May 26th, HBO is dropping Game of Thrones: The Last Watch. Still, one thing no one is prepared for is how this historic season is about to end.
Cape Town - With the final episode of Game of Thrones set to air in a few days, HBO has released the first trailer for the documentary The Last Watch. HBO has now released a trailer for the documentary, and it begins by showing the cast doing a table read for what appears to the series finale.
More news: Texas officer shoots dead woman heard on video saying 'I'm pregnant'
Meantime, the Game of Thrones' spin-off with the working title Bloodmoon has reportedly started filming in Belfast.
The two-hour documentary won't just focus on the actors as they prepare to say goodbye to the characters they've played over the last eight seasons, but also on the crew who brought Westeros to life behind the scenes.
More news: Moon's shrinkage is producing lunar quakes
"Much more than a "making of" documentary, this is a amusing, heartbreaking story, told with wit and intimacy, about the bittersweet pleasures of what it means to create a world - and then have to say goodbye to it". It's going to be hard to get anything going that will match half of the success Game of Thrones has earned over the years. The behind-the-scenes look should be enough for fans to get some closure, at least until the prequel shows debut.
ASX slumps at open after Wall Street falls
Meghan, Prince Harry release baby feet photo for Mother's Day
Germany: Three Bavaria hotel guests found dead from crossbow bolts
Priyanka Chopra Receives A Warm Birthday Wish From Hina Khan; View Post 7/19/2019
Brad Pitt stars in new trailer for 'Ad Astra' 7/19/2019
Top Gun: Maverick trailer shows Tom Cruise still feels need for speed 7/19/2019
Amazon to Develop 'Jack Reacher' Series 7/18/2019
First Images Released for Rick and Morty 4 7/18/2019
Jon Hamm Spills the Beans on Top Gun 7/18/2019
'Marvel's Agents Of SHIELD' Ending After Season 7 7/18/2019
Paul McCartney writing stage musical It's a Wonderful Life 7/18/2019
'It: Chapter Two' Final Trailer Goes Wide After ScareDiego Debut 7/18/2019
Kathy Griffin Says Former Boss Andy Cohen 'Treated Me Like A Dog' 7/18/2019
Bond 25: Production Delayed After Daniel Craig Is Injured On Set
According to The Sun , Craig was filming a running scene wearing a suit and smart shoes when he fell awkwardly and hurt his foot. Citing an unnamed source, the publication reported that the actor was shooting one of his final scenes in Jamaica.
Tim Conway, 'Carol Burnett Show' star, dies at 85
Conway made New York City home and went on to land a breakout role on McHale's Navy beginning in 1962. Publicist Howard Bragman said Conway died in the Los Angeles area on Tuesday morning .
Barr Orders Connecticut Prosecutor to Investigate Mueller Probe
Mukasey assigned Durham to investigate the CIA's destruction of videotapes which showed terrorism suspected being tortured. Barr has appointed John Durham for the assignment, according to the New York Times .
Facebook increases pay for contractors and content moderators
We made these changes after hearing feedback that reviewers want more control over how they see content that can be challenging. The social network contracts with outside companies for an array of services, such as meals or transportation for employees.
BOTTOM LINE: The Milwaukee Bucks host the Boston Celtics in the Eastern Conference second round with a 3-1 lead in the series. A lot of people are still going to doubt us. "I feel like it's a fresh start, whether I'm here or whether I'm gone".
Disney takes over Hulu; streaming fight
Reportedly, Comcast is preparing an NBC streaming service to launch sometime in 2020 at a price point below $12 per month. However, that has not been finalized.
Salah enjoys Premier League Golden Boot win
It is disappointing, it is not a wonderful moment but we have enough time to see and feel how brilliant the season was. They have 198 points in two years, that's special. "If we're ready to make the next step we'll make that next step.
West Indies seal record chase against Ireland
After the experience of conceding a world record opening stand of 365 on Sunday, the Ireland bowlers have plenty to prove. Balbirnie scored 135 from 124 balls and registered his fourth ODI hundred, passing 3,000 runs for Ireland in the process.
North Korea calls U.S. ship seizure a 'robbery,' demands its return
The vessel was originally seized in Indonesia past year for allegedly circumventing UN-imposed sanctions on shipping coal. The move was an "extension of U.S. calculation" to bring Pyongyang to its knees through maximum pressure, he said.
Burmese pilot lands plane on rear wheels after landing gear jams
Passengers could be seen walking away from the scene with smiles on their faces after they somehow managed to cheat death. Emergency vehicles came to attend to the plane as soon as it landed, but no-one was injured in the emergency manoeuvre .
World is losing its 'political will' to fight climate change
The secretary-general's trip comes ahead of the Climate Action Summit that he plans to convene in September in NY . The bill is expected to come to a final vote in Parliament later this year.
Spears, parents talk in court; evaluation sought
The court appearance was one of the Toxic star's first outings since she completed mental health treatment in a wellness centre. Jamie Lynn immediately responded to the troll, writing she has never "been paid a dime" by her sister.
AG Barr Assigns U.S. Attorney To Investigate Origins Of Russia Probe
The person could not discuss the matter publicly and spoke to the AP on condition of anonymity. Barr has appointed John Durham for the assignment, according to the New York Times .
Charges Against Conor McGregor Have Been Dropped From Incident In Miami Beach
Abdirzak "has credibility issues as he's changed his previously sworn testimony", Madani's memo explained (h/t ESPN). The court heard the complainant had stopped cooperating with police after settling a civil lawsuit with McGregor.
Ballon d'Or: Former Juventus star Benatia believes Ronaldo deserves award over Messi
Ronaldo made a gesture with his hand with the former Real Madrid star heard saying: "You're too small to talk". Needless to say, Ronaldo's actions sent social media into overdrive.
Mindhunter to return with second season on Aug 167/18/2019
British Open attendance will soar at Royal Portrush7/18/2019
"Bachelor" creator accused of attacking pregnant wife7/18/2019
Henry Cavill Teases Comic-Con Appearance With The Witcher7/18/2019
Arsenal vs Bayern Munich7/18/2019
Cats - A Look Inside (2019) | Movieclips Trailers7/18/2019
Chance the Rapper Announces Debut Album 'The Big Day'7/18/2019
Sarah Hyland And Wells Adams FINALLY ENGAGED!7/18/2019
Edward Furlong Returns as John Connor in 'Terminator: Dark Fate'7/18/2019
Steph Curry responds to online trolls after Ayesha dance video criticism7/18/2019
Jay and Silent Bob Reboot - Red Band Trailer7/18/2019
'Playing With Fire' Trailer: Comedy Has Firefighters As Babysitters7/18/2019


Rachel Mata-Wadsworth – The Graphics Co.
The first person you see when you visit The Graphics Company. Rachel has been with the team since 2016. Handling a number of duties in the front office she is always in a good mood and ready to help.


text:
Apple paid its lawyers over $60 million to beat Samsung in court
The Verge Bryan Bishop Dec 6, 2013
The Verge Dec 6, 2013
Bryan Bishop Dec 6, 2013 Read Source
The damages retrial for last year's Apple vs. Samsung legal battle recently wrapped, and new court documents reveal how much Cupertino paid to get its wins: over $60 million. The revelations come as Apple requests that Samsung reimburse a portion of its legal costs. According to recent court filings, Apple wants its rival to pay a third of that, coming out to more than $15.7 million in attorney's fees.
Apple primarily employed two law firms for its case: Morrison & Foerster, LLP handled the offensive side of the battle, while Wilmer Cutler Pickering Hale and Dorr, LLP covered the company's defense against Samsung's own claims of patent infringement. According to the documents, WilmerHale billed for around $2 million, where Apple expects...


During the Open Gardens weekend, thirteen varied gardens, including 4 National Garden Scheme gardens and the recent Repton Memorial Arboretum will be open, most on both days.
Year after year, visitors come from far and wide to this event and we are always delighted to welcome them, exchange ideas and make this a special weekend.
Teas will be served in the village hall from 2.30pm to 5.30pm on both afternoons. The United Reformed Church will serve cream teas in the School Room from 3.00pm to 5.00pm on Saturday only.
Scarecrows will be on display around the village and there will be prizes for the most entertaining or inventive scarecrows. A Children's Garden Trail will feature in most gardens and a small prize will be given in the Village Hall for each completed entry.
The event will open with bell ringing from St. Wystan's Church. There will also be a Children's Church Trail which children are encouraged to try with the help of their families.
There will be a number of stalls in gardens and at the village hall including a tombola, a plant stall, a bookstall and home produce stalls.
Proceeds in aid of St Wystan's Church funds.
Several of the gardens will have plants sales. There is also a home produce stall.
On sale at the village post office and butchers beforehand and at the Church lych gate, village hall and in the gardens on the actual open days.
This event involves a Scarecrow Trail.
Repton is located near the A38/A50 intersection - follow signs to Willington then Repton.
A plant lover's garden, on a sloping 2.5 acre site, developed organically for all seasons. On the lower levels, maturing perennial and shrub borders are connected via lawns, thyme bed, pond and pergolas to a small specialist nursery offering easy and unusual perennials. Moving up and away from the house, walk the grassed labyrinth and meander through the woodland walk, that we share with James our Aylesbury duck and an ever growing range of wildlife, to our spacious fruit, vegetable and herb potager. For those who prefer peace and quiet, our two fields on the highest level of the garden provide a welcome retreat at the end of the day's work as they merge naturally with the countryside beyond. Looking back towards the house is a wonderful view of the snake-like hedge that follows the contour of the hills.
A large garden packed with colourful and unusual plants. As you meander through the garden you will see borders packed with common, unusual and interesting plants; there is an emphasis on vibrant colours, bold structures, interesting foliage and heady scents. Near the house is an ornamental pond and waterfall, which is more formal than the wildlife pond at the far end of the garden- watch out for frogs watching you! The new ½ acre "field" is being developed into a woodland, butterfly beds, vegetables and yet more compost heaps. We have planted scores of trees. Remember that it was a field of wheat just 6 years ago, it is amazing how quickly the hedge and trees have grown up.
The present owners of this garden of over an acre have spent the last 27years developing a garden for all seasons and they are continuing to make changes. It is divided by Repton Brook which loops around to enclose the lower, larger part of the garden. The area near to the house is more formal, including fish ponds, lawn, herbaceous borders and vegetables. There are always plenty of containers providing both spring and summer colour. Over the bridge, you can enjoy woodland and brook-side walks with rhododendrons, azaleas, camellias and specimen trees with a ferns area and grasses leading to a lawn with rose beds and a wildlife pond. Trees planted over the last 25 years include a Sequoiadendron giganteum which is rapidly living up to its name, a large Tulip tree and a Ginko biloba. There are plantings of bamboo and moisture-loving plants and plenty of seats to sit and relax.
A small garden on a steep slope overflowing with interesting plants. You will receive an enthusiastic welcome and wonder how she fits so many plants into such a small space, the exuberant character of the garden reflects energy of the owner. Places to sit and enjoy the atmosphere; she breaks all the rules but it works!


text:
/* LzFindMt.c -- multithreaded Match finder for LZ algorithms
2008-10-04 : Igor Pavlov : Public domain */

#include "LzHash.h"

#include "LzFindMt.h"

void MtSync_Construct(CMtSync *p)
{
  p->wasCreated = False;
  p->csWasInitialized = False;
  p->csWasEntered = False;
  Thread_Construct(&p->thread);
  Event_Construct(&p->canStart);
  Event_Construct(&p->wasStarted);
  Event_Construct(&p->wasStopped);
  Semaphore_Construct(&p->freeSemaphore);
  Semaphore_Construct(&p->filledSemaphore);
}

void MtSync_GetNextBlock(CMtSync *p)
{
  if (p->needStart)
  {
    p->numProcessedBlocks = 1;
    p->needStart = False;
    p->stopWriting = False;
    p->exit = False;
    Event_Reset(&p->wasStarted);
    Event_Reset(&p->wasStopped);

    Event_Set(&p->canStart);
    Event_Wait(&p->wasStarted);
  }
  else
  {
    CriticalSection_Leave(&p->cs);
    p->csWasEntered = False;
    p->numProcessedBlocks++;
    Semaphore_Release1(&p->freeSemaphore);
  }
  Semaphore_Wait(&p->filledSemaphore);
  CriticalSection_Enter(&p->cs);
  p->csWasEntered = True;
}

/* MtSync_StopWriting must be called if Writing was started */

void MtSync_StopWriting(CMtSync *p)
{
  UInt32 myNumBlocks = p->numProcessedBlocks;
  if (!Thread_WasCreated(&p->thread) || p->needStart)
    return;
  p->stopWriting = True;
  if (p->csWasEntered)
  {
    CriticalSection_Leave(&p->cs);
    p->csWasEntered = False;
  }
  Semaphore_Release1(&p->freeSemaphore);

  Event_Wait(&p->wasStopped);

  while (myNumBlocks++ != p->numProcessedBlocks)
  {
    Semaphore_Wait(&p->filledSemaphore);
    Semaphore_Release1(&p->freeSemaphore);
  }
  p->needStart = True;
}

void MtSync_Destruct(CMtSync *p)
{
  if (Thread_WasCreated(&p->thread))
  {
    MtSync_StopWriting(p);
    p->exit = True;
    if (p->needStart)
      Event_Set(&p->canStart);
    Thread_Wait(&p->thread);
    Thread_Close(&p->thread);
  }
  if (p->csWasInitialized)
  {
    CriticalSection_Delete(&p->cs);
    p->csWasInitialized = False;
  }

  Event_Close(&p->canStart);
  Event_Close(&p->wasStarted);
  Event_Close(&p->wasStopped);
  Semaphore_Close(&p->freeSemaphore);
  Semaphore_Close(&p->filledSemaphore);

  p->wasCreated = False;
}

#define RINOK_THREAD(x) { if ((x) != 0) return SZ_ERROR_THREAD; }

static SRes MtSync_Create2(CMtSync *p, unsigned (MY_STD_CALL *startAddress)(void *), void *obj, UInt32 numBlocks)
{
  if (p->wasCreated)
    return SZ_OK;

  RINOK_THREAD(CriticalSection_Init(&p->cs));
  p->csWasInitialized = True;

  RINOK_THREAD(AutoResetEvent_CreateNotSignaled(&p->canStart));
  RINOK_THREAD(AutoResetEvent_CreateNotSignaled(&p->wasStarted));
  RINOK_THREAD(AutoResetEvent_CreateNotSignaled(&p->wasStopped));

  RINOK_THREAD(Semaphore_Create(&p->freeSemaphore, numBlocks, numBlocks));
  RINOK_THREAD(Semaphore_Create(&p->filledSemaphore, 0, numBlocks));

  p->needStart = True;

  RINOK_THREAD(Thread_Create(&p->thread, startAddress, obj));
  p->wasCreated = True;
  return SZ_OK;
}

static SRes MtSync_Create(CMtSync *p, unsigned (MY_STD_CALL *startAddress)(void *), void *obj, UInt32 numBlocks)
{
  SRes res = MtSync_Create2(p, startAddress, obj, numBlocks);
  if (res != SZ_OK)
    MtSync_Destruct(p);
  return res;
}

void MtSync_Init(CMtSync *p) { p->needStart = True; }

#define kMtMaxValForNormalize 0xFFFFFFFF

#define DEF_GetHeads2(name, v, action) \
static void GetHeads ## name(const Byte *p, UInt32 pos, \
UInt32 *hash, UInt32 hashMask, UInt32 *heads, UInt32 numHeads, const UInt32 *crc) \
{ action; for (; numHeads != 0; numHeads--) { \
const UInt32 value = (v); p++; *heads++ = pos - hash[value]; hash[value] = pos++;  } }

#define DEF_GetHeads(name, v) DEF_GetHeads2(name, v, ;)

DEF_GetHeads2(2,  (p[0] | ((UInt32)p[1] << 8)), hashMask = hashMask; crc = crc; )
DEF_GetHeads(3,  (crc[p[0]] ^ p[1] ^ ((UInt32)p[2] << 8)) & hashMask)
DEF_GetHeads(4,  (crc[p[0]] ^ p[1] ^ ((UInt32)p[2] << 8) ^ (crc[p[3]] << 5)) & hashMask)
DEF_GetHeads(4b, (crc[p[0]] ^ p[1] ^ ((UInt32)p[2] << 8) ^ ((UInt32)p[3] << 16)) & hashMask)
DEF_GetHeads(5,  (crc[p[0]] ^ p[1] ^ ((UInt32)p[2] << 8) ^ (crc[p[3]] << 5) ^ (crc[p[4]] << 3)) & hashMask)

void HashThreadFunc(CMatchFinderMt *mt)
{
  CMtSync *p = &mt->hashSync;
  for (;;)
  {
    UInt32 numProcessedBlocks = 0;
    Event_Wait(&p->canStart);
    Event_Set(&p->wasStarted);
    for (;;)
    {
      if (p->exit)
        return;
      if (p->stopWriting)
      {
        p->numProcessedBlocks = numProcessedBlocks;
        Event_Set(&p->wasStopped);
        break;
      }

      {
        CMatchFinder *mf = mt->MatchFinder;
        if (MatchFinder_NeedMove(mf))
        {
          CriticalSection_Enter(&mt->btSync.cs);
          CriticalSection_Enter(&mt->hashSync.cs);
          {
            const Byte *beforePtr = MatchFinder_GetPointerToCurrentPos(mf);
            const Byte *afterPtr;
            MatchFinder_MoveBlock(mf);
            afterPtr = MatchFinder_GetPointerToCurrentPos(mf);
            mt->pointerToCurPos -= beforePtr - afterPtr;
            mt->buffer -= beforePtr - afterPtr;
          }
          CriticalSection_Leave(&mt->btSync.cs);
          CriticalSection_Leave(&mt->hashSync.cs);
          continue;
        }

        Semaphore_Wait(&p->freeSemaphore);

        MatchFinder_ReadIfRequired(mf);
        if (mf->pos > (kMtMaxValForNormalize - kMtHashBlockSize))
        {
          UInt32 subValue = (mf->pos - mf->historySize - 1);
          MatchFinder_ReduceOffsets(mf, subValue);
          MatchFinder_Normalize3(subValue, mf->hash + mf->fixedHashSize, mf->hashMask + 1);
        }
        {
          UInt32 *heads = mt->hashBuf + ((numProcessedBlocks++) & kMtHashNumBlocksMask) * kMtHashBlockSize;
          UInt32 num = mf->streamPos - mf->pos;
          heads[0] = 2;
          heads[1] = num;
          if (num >= mf->numHashBytes)
          {
            num = num - mf->numHashBytes + 1;
            if (num > kMtHashBlockSize - 2)
              num = kMtHashBlockSize - 2;
            mt->GetHeadsFunc(mf->buffer, mf->pos, mf->hash + mf->fixedHashSize, mf->hashMask, heads + 2, num, mf->crc);
            heads[0] += num;
          }
          mf->pos += num;
          mf->buffer += num;
        }
      }

      Semaphore_Release1(&p->filledSemaphore);
    }
  }
}

void MatchFinderMt_GetNextBlock_Hash(CMatchFinderMt *p)
{
  MtSync_GetNextBlock(&p->hashSync);
  p->hashBufPosLimit = p->hashBufPos = ((p->hashSync.numProcessedBlocks - 1) & kMtHashNumBlocksMask) * kMtHashBlockSize;
  p->hashBufPosLimit += p->hashBuf[p->hashBufPos++];
  p->hashNumAvail = p->hashBuf[p->hashBufPos++];
}

#define kEmptyHashValue 0

/* #define MFMT_GM_INLINE */

#ifdef MFMT_GM_INLINE

#define NO_INLINE MY_FAST_CALL

Int32 NO_INLINE GetMatchesSpecN(UInt32 lenLimit, UInt32 pos, const Byte *cur, CLzRef *son,
    UInt32 _cyclicBufferPos, UInt32 _cyclicBufferSize, UInt32 _cutValue,
    UInt32 *_distances, UInt32 _maxLen, const UInt32 *hash, Int32 limit, UInt32 size, UInt32 *posRes)
{
  do
  {
  UInt32 *distances = _distances + 1;
  UInt32 curMatch = pos - *hash++;

  CLzRef *ptr0 = son + (_cyclicBufferPos << 1) + 1;
  CLzRef *ptr1 = son + (_cyclicBufferPos << 1);
  UInt32 len0 = 0, len1 = 0;
  UInt32 cutValue = _cutValue;
  UInt32 maxLen = _maxLen;
  for (;;)
  {
    UInt32 delta = pos - curMatch;
    if (cutValue-- == 0 || delta >= _cyclicBufferSize)
    {
      *ptr0 = *ptr1 = kEmptyHashValue;
      break;
    }
    {
      CLzRef *pair = son + ((_cyclicBufferPos - delta + ((delta > _cyclicBufferPos) ? _cyclicBufferSize : 0)) << 1);
      const Byte *pb = cur - delta;
      UInt32 len = (len0 < len1 ? len0 : len1);
      if (pb[len] == cur[len])
      {
        if (++len != lenLimit && pb[len] == cur[len])
          while (++len != lenLimit)
            if (pb[len] != cur[len])
              break;
        if (maxLen < len)
        {
          *distances++ = maxLen = len;
          *distances++ = delta - 1;
          if (len == lenLimit)
          {
            *ptr1 = pair[0];
            *ptr0 = pair[1];
            break;
          }
        }
      }
      if (pb[len] < cur[len])
      {
        *ptr1 = curMatch;
        ptr1 = pair + 1;
        curMatch = *ptr1;
        len1 = len;
      }
      else
      {
        *ptr0 = curMatch;
        ptr0 = pair;
        curMatch = *ptr0;
        len0 = len;
      }
    }
  }
  pos++;
  _cyclicBufferPos++;
  cur++;
  {
    UInt32 num = (UInt32)(distances - _distances);
    *_distances = num - 1;
    _distances += num;
    limit -= num;
  }
  }
  while (limit > 0 && --size != 0);
  *posRes = pos;
  return limit;
}

#endif

void BtGetMatches(CMatchFinderMt *p, UInt32 *distances)
{
  UInt32 numProcessed = 0;
  UInt32 curPos = 2;
  UInt32 limit = kMtBtBlockSize - (p->matchMaxLen * 2);
  distances[1] = p->hashNumAvail;
  while (curPos < limit)
  {
    if (p->hashBufPos == p->hashBufPosLimit)
    {
      MatchFinderMt_GetNextBlock_Hash(p);
      distances[1] = numProcessed + p->hashNumAvail;
      if (p->hashNumAvail >= p->numHashBytes)
        continue;
      for (; p->hashNumAvail != 0; p->hashNumAvail--)
        distances[curPos++] = 0;
      break;
    }
    {
      UInt32 size = p->hashBufPosLimit - p->hashBufPos;
      UInt32 lenLimit = p->matchMaxLen;
      UInt32 pos = p->pos;
      UInt32 cyclicBufferPos = p->cyclicBufferPos;
      if (lenLimit >= p->hashNumAvail)
        lenLimit = p->hashNumAvail;
      {
        UInt32 size2 = p->hashNumAvail - lenLimit + 1;
        if (size2 < size)
          size = size2;
        size2 = p->cyclicBufferSize - cyclicBufferPos;
        if (size2 < size)
          size = size2;
      }
      #ifndef MFMT_GM_INLINE
      while (curPos < limit && size-- != 0)
      {
        UInt32 *startDistances = distances + curPos;
        UInt32 num = (UInt32)(GetMatchesSpec1(lenLimit, pos - p->hashBuf[p->hashBufPos++],
          pos, p->buffer, p->son, cyclicBufferPos, p->cyclicBufferSize, p->cutValue,
          startDistances + 1, p->numHashBytes - 1) - startDistances);
        *startDistances = num - 1;
        curPos += num;
        cyclicBufferPos++;
        pos++;
        p->buffer++;
      }
      #else
      {
        UInt32 posRes;
        curPos = limit - GetMatchesSpecN(lenLimit, pos, p->buffer, p->son, cyclicBufferPos, p->cyclicBufferSize, p->cutValue,
          distances + curPos, p->numHashBytes - 1, p->hashBuf + p->hashBufPos, (Int32)(limit - curPos) , size, &posRes);
        p->hashBufPos += posRes - pos;
        cyclicBufferPos += posRes - pos;
        p->buffer += posRes - pos;
        pos = posRes;
      }
      #endif

      numProcessed += pos - p->pos;
      p->hashNumAvail -= pos - p->pos;
      p->pos = pos;
      if (cyclicBufferPos == p->cyclicBufferSize)
        cyclicBufferPos = 0;
      p->cyclicBufferPos = cyclicBufferPos;
    }
  }
  distances[0] = curPos;
}

void BtFillBlock(CMatchFinderMt *p, UInt32 globalBlockIndex)
{
  CMtSync *sync = &p->hashSync;
  if (!sync->needStart)
  {
    CriticalSection_Enter(&sync->cs);
    sync->csWasEntered = True;
  }

  BtGetMatches(p, p->btBuf + (globalBlockIndex & kMtBtNumBlocksMask) * kMtBtBlockSize);

  if (p->pos > kMtMaxValForNormalize - kMtBtBlockSize)
  {
    UInt32 subValue = p->pos - p->cyclicBufferSize;
    MatchFinder_Normalize3(subValue, p->son, p->cyclicBufferSize * 2);
    p->pos -= subValue;
  }

  if (!sync->needStart)
  {
    CriticalSection_Leave(&sync->cs);
    sync->csWasEntered = False;
  }
}

void BtThreadFunc(CMatchFinderMt *mt)
{
  CMtSync *p = &mt->btSync;
  for (;;)
  {
    UInt32 blockIndex = 0;
    Event_Wait(&p->canStart);
    Event_Set(&p->wasStarted);
    for (;;)
    {
      if (p->exit)
        return;
      if (p->stopWriting)
      {
        p->numProcessedBlocks = blockIndex;
        MtSync_StopWriting(&mt->hashSync);
        Event_Set(&p->wasStopped);
        break;
      }
      Semaphore_Wait(&p->freeSemaphore);
      BtFillBlock(mt, blockIndex++);
      Semaphore_Release1(&p->filledSemaphore);
    }
  }
}

void MatchFinderMt_Construct(CMatchFinderMt *p)
{
  p->hashBuf = 0;
  MtSync_Construct(&p->hashSync);
  MtSync_Construct(&p->btSync);
}

void MatchFinderMt_FreeMem(CMatchFinderMt *p, ISzAlloc *alloc)
{
  alloc->Free(alloc, p->hashBuf);
  p->hashBuf = 0;
}

void MatchFinderMt_Destruct(CMatchFinderMt *p, ISzAlloc *alloc)
{
  MtSync_Destruct(&p->hashSync);
  MtSync_Destruct(&p->btSync);
  MatchFinderMt_FreeMem(p, alloc);
}

#define kHashBufferSize (kMtHashBlockSize * kMtHashNumBlocks)
#define kBtBufferSize (kMtBtBlockSize * kMtBtNumBlocks)

static unsigned MY_STD_CALL HashThreadFunc2(void *p) { HashThreadFunc((CMatchFinderMt *)p);  return 0; }
static unsigned MY_STD_CALL BtThreadFunc2(void *p)
{
  Byte allocaDummy[0x180];
  int i = 0;
  for (i = 0; i < 16; i++)
    allocaDummy[i] = (Byte)i;
  BtThreadFunc((CMatchFinderMt *)p);
  return 0;
}

SRes MatchFinderMt_Create(CMatchFinderMt *p, UInt32 historySize, UInt32 keepAddBufferBefore,
    UInt32 matchMaxLen, UInt32 keepAddBufferAfter, ISzAlloc *alloc)
{
  CMatchFinder *mf = p->MatchFinder;
  p->historySize = historySize;
  if (kMtBtBlockSize <= matchMaxLen * 4)
    return SZ_ERROR_PARAM;
  if (p->hashBuf == 0)
  {
    p->hashBuf = (UInt32 *)alloc->Alloc(alloc, (kHashBufferSize + kBtBufferSize) * sizeof(UInt32));
    if (p->hashBuf == 0)
      return SZ_ERROR_MEM;
    p->btBuf = p->hashBuf + kHashBufferSize;
  }
  keepAddBufferBefore += (kHashBufferSize + kBtBufferSize);
  keepAddBufferAfter += kMtHashBlockSize;
  if (!MatchFinder_Create(mf, historySize, keepAddBufferBefore, matchMaxLen, keepAddBufferAfter, alloc))
    return SZ_ERROR_MEM;

  RINOK(MtSync_Create(&p->hashSync, HashThreadFunc2, p, kMtHashNumBlocks));
  RINOK(MtSync_Create(&p->btSync, BtThreadFunc2, p, kMtBtNumBlocks));
  return SZ_OK;
}

/* Call it after ReleaseStream / SetStream */
void MatchFinderMt_Init(CMatchFinderMt *p)
{
  CMatchFinder *mf = p->MatchFinder;
  p->btBufPos = p->btBufPosLimit = 0;
  p->hashBufPos = p->hashBufPosLimit = 0;
  MatchFinder_Init(mf);
  p->pointerToCurPos = MatchFinder_GetPointerToCurrentPos(mf);
  p->btNumAvailBytes = 0;
  p->lzPos = p->historySize + 1;

  p->hash = mf->hash;
  p->fixedHashSize = mf->fixedHashSize;
  p->crc = mf->crc;

  p->son = mf->son;
  p->matchMaxLen = mf->matchMaxLen;
  p->numHashBytes = mf->numHashBytes;
  p->pos = mf->pos;
  p->buffer = mf->buffer;
  p->cyclicBufferPos = mf->cyclicBufferPos;
  p->cyclicBufferSize = mf->cyclicBufferSize;
  p->cutValue = mf->cutValue;
}

/* ReleaseStream is required to finish multithreading */
void MatchFinderMt_ReleaseStream(CMatchFinderMt *p)
{
  MtSync_StopWriting(&p->btSync);
  /* p->MatchFinder->ReleaseStream(); */
}

void MatchFinderMt_Normalize(CMatchFinderMt *p)
{
  MatchFinder_Normalize3(p->lzPos - p->historySize - 1, p->hash, p->fixedHashSize);
  p->lzPos = p->historySize + 1;
}

void MatchFinderMt_GetNextBlock_Bt(CMatchFinderMt *p)
{
  UInt32 blockIndex;
  MtSync_GetNextBlock(&p->btSync);
  blockIndex = ((p->btSync.numProcessedBlocks - 1) & kMtBtNumBlocksMask);
  p->btBufPosLimit = p->btBufPos = blockIndex * kMtBtBlockSize;
  p->btBufPosLimit += p->btBuf[p->btBufPos++];
  p->btNumAvailBytes = p->btBuf[p->btBufPos++];
  if (p->lzPos >= kMtMaxValForNormalize - kMtBtBlockSize)
    MatchFinderMt_Normalize(p);
}

const Byte * MatchFinderMt_GetPointerToCurrentPos(CMatchFinderMt *p)
{
  return p->pointerToCurPos;
}

#define GET_NEXT_BLOCK_IF_REQUIRED if (p->btBufPos == p->btBufPosLimit) MatchFinderMt_GetNextBlock_Bt(p);

UInt32 MatchFinderMt_GetNumAvailableBytes(CMatchFinderMt *p)
{
  GET_NEXT_BLOCK_IF_REQUIRED;
  return p->btNumAvailBytes;
}

Byte MatchFinderMt_GetIndexByte(CMatchFinderMt *p, Int32 index)
{
  return p->pointerToCurPos[index];
}

UInt32 * MixMatches2(CMatchFinderMt *p, UInt32 matchMinPos, UInt32 *distances)
{
  UInt32 hash2Value, curMatch2;
  UInt32 *hash = p->hash;
  const Byte *cur = p->pointerToCurPos;
  UInt32 lzPos = p->lzPos;
  MT_HASH2_CALC

  curMatch2 = hash[hash2Value];
  hash[hash2Value] = lzPos;

  if (curMatch2 >= matchMinPos)
    if (cur[(ptrdiff_t)curMatch2 - lzPos] == cur[0])
    {
      *distances++ = 2;
      *distances++ = lzPos - curMatch2 - 1;
    }
  return distances;
}

UInt32 * MixMatches3(CMatchFinderMt *p, UInt32 matchMinPos, UInt32 *distances)
{
  UInt32 hash2Value, hash3Value, curMatch2, curMatch3;
  UInt32 *hash = p->hash;
  const Byte *cur = p->pointerToCurPos;
  UInt32 lzPos = p->lzPos;
  MT_HASH3_CALC

  curMatch2 = hash[                hash2Value];
  curMatch3 = hash[kFix3HashSize + hash3Value];

  hash[                hash2Value] =
  hash[kFix3HashSize + hash3Value] =
    lzPos;

  if (curMatch2 >= matchMinPos && cur[(ptrdiff_t)curMatch2 - lzPos] == cur[0])
  {
    distances[1] = lzPos - curMatch2 - 1;
    if (cur[(ptrdiff_t)curMatch2 - lzPos + 2] == cur[2])
    {
      distances[0] = 3;
      return distances + 2;
    }
    distances[0] = 2;
    distances += 2;
  }
  if (curMatch3 >= matchMinPos && cur[(ptrdiff_t)curMatch3 - lzPos] == cur[0])
  {
    *distances++ = 3;
    *distances++ = lzPos - curMatch3 - 1;
  }
  return distances;
}

/*
UInt32 *MixMatches4(CMatchFinderMt *p, UInt32 matchMinPos, UInt32 *distances)
{
  UInt32 hash2Value, hash3Value, hash4Value, curMatch2, curMatch3, curMatch4;
  UInt32 *hash = p->hash;
  const Byte *cur = p->pointerToCurPos;
  UInt32 lzPos = p->lzPos;
  MT_HASH4_CALC

  curMatch2 = hash[                hash2Value];
  curMatch3 = hash[kFix3HashSize + hash3Value];
  curMatch4 = hash[kFix4HashSize + hash4Value];

  hash[                hash2Value] =
  hash[kFix3HashSize + hash3Value] =
  hash[kFix4HashSize + hash4Value] =
    lzPos;

  if (curMatch2 >= matchMinPos && cur[(ptrdiff_t)curMatch2 - lzPos] == cur[0])
  {
    distances[1] = lzPos - curMatch2 - 1;
    if (cur[(ptrdiff_t)curMatch2 - lzPos + 2] == cur[2])
    {
      distances[0] =  (cur[(ptrdiff_t)curMatch2 - lzPos + 3] == cur[3]) ? 4 : 3;
      return distances + 2;
    }
    distances[0] = 2;
    distances += 2;
  }
  if (curMatch3 >= matchMinPos && cur[(ptrdiff_t)curMatch3 - lzPos] == cur[0])
  {
    distances[1] = lzPos - curMatch3 - 1;
    if (cur[(ptrdiff_t)curMatch3 - lzPos + 3] == cur[3])
    {
      distances[0] = 4;
      return distances + 2;
    }
    distances[0] = 3;
    distances += 2;
  }

  if (curMatch4 >= matchMinPos)
    if (
      cur[(ptrdiff_t)curMatch4 - lzPos] == cur[0] &&
      cur[(ptrdiff_t)curMatch4 - lzPos + 3] == cur[3]
      )
    {
      *distances++ = 4;
      *distances++ = lzPos - curMatch4 - 1;
    }
  return distances;
}
*/

#define INCREASE_LZ_POS p->lzPos++; p->pointerToCurPos++;

UInt32 MatchFinderMt2_GetMatches(CMatchFinderMt *p, UInt32 *distances)
{
  const UInt32 *btBuf = p->btBuf + p->btBufPos;
  UInt32 len = *btBuf++;
  p->btBufPos += 1 + len;
  p->btNumAvailBytes--;
  {
    UInt32 i;
    for (i = 0; i < len; i += 2)
    {
      *distances++ = *btBuf++;
      *distances++ = *btBuf++;
    }
  }
  INCREASE_LZ_POS
  return len;
}

UInt32 MatchFinderMt_GetMatches(CMatchFinderMt *p, UInt32 *distances)
{
  const UInt32 *btBuf = p->btBuf + p->btBufPos;
  UInt32 len = *btBuf++;
  p->btBufPos += 1 + len;

  if (len == 0)
  {
    if (p->btNumAvailBytes-- >= 4)
      len = (UInt32)(p->MixMatchesFunc(p, p->lzPos - p->historySize, distances) - (distances));
  }
  else
  {
    /* Condition: there are matches in btBuf with length < p->numHashBytes */
    UInt32 *distances2;
    p->btNumAvailBytes--;
    distances2 = p->MixMatchesFunc(p, p->lzPos - btBuf[1], distances);
    do
    {
      *distances2++ = *btBuf++;
      *distances2++ = *btBuf++;
    }
    while ((len -= 2) != 0);
    len  = (UInt32)(distances2 - (distances));
  }
  INCREASE_LZ_POS
  return len;
}

#define SKIP_HEADER2  do { GET_NEXT_BLOCK_IF_REQUIRED
#define SKIP_HEADER(n) SKIP_HEADER2 if (p->btNumAvailBytes-- >= (n)) { const Byte *cur = p->pointerToCurPos; UInt32 *hash = p->hash;
#define SKIP_FOOTER } INCREASE_LZ_POS p->btBufPos += p->btBuf[p->btBufPos] + 1; } while (--num != 0);

void MatchFinderMt0_Skip(CMatchFinderMt *p, UInt32 num)
{
  SKIP_HEADER2 { p->btNumAvailBytes--;
  SKIP_FOOTER
}

void MatchFinderMt2_Skip(CMatchFinderMt *p, UInt32 num)
{
  SKIP_HEADER(2)
      UInt32 hash2Value;
      MT_HASH2_CALC
      hash[hash2Value] = p->lzPos;
  SKIP_FOOTER
}

void MatchFinderMt3_Skip(CMatchFinderMt *p, UInt32 num)
{
  SKIP_HEADER(3)
      UInt32 hash2Value, hash3Value;
      MT_HASH3_CALC
      hash[kFix3HashSize + hash3Value] =
      hash[                hash2Value] =
        p->lzPos;
  SKIP_FOOTER
}

/*
void MatchFinderMt4_Skip(CMatchFinderMt *p, UInt32 num)
{
  SKIP_HEADER(4)
      UInt32 hash2Value, hash3Value, hash4Value;
      MT_HASH4_CALC
      hash[kFix4HashSize + hash4Value] =
      hash[kFix3HashSize + hash3Value] =
      hash[                hash2Value] =
        p->lzPos;
  SKIP_FOOTER
}
*/

void MatchFinderMt_CreateVTable(CMatchFinderMt *p, IMatchFinder *vTable)
{
  vTable->Init = (Mf_Init_Func)MatchFinderMt_Init;
  vTable->GetIndexByte = (Mf_GetIndexByte_Func)MatchFinderMt_GetIndexByte;
  vTable->GetNumAvailableBytes = (Mf_GetNumAvailableBytes_Func)MatchFinderMt_GetNumAvailableBytes;
  vTable->GetPointerToCurrentPos = (Mf_GetPointerToCurrentPos_Func)MatchFinderMt_GetPointerToCurrentPos;
  vTable->GetMatches = (Mf_GetMatches_Func)MatchFinderMt_GetMatches;
  switch(p->MatchFinder->numHashBytes)
  {
    case 2:
      p->GetHeadsFunc = GetHeads2;
      p->MixMatchesFunc = (Mf_Mix_Matches)0;
      vTable->Skip = (Mf_Skip_Func)MatchFinderMt0_Skip;
      vTable->GetMatches = (Mf_GetMatches_Func)MatchFinderMt2_GetMatches;
      break;
    case 3:
      p->GetHeadsFunc = GetHeads3;
      p->MixMatchesFunc = (Mf_Mix_Matches)MixMatches2;
      vTable->Skip = (Mf_Skip_Func)MatchFinderMt2_Skip;
      break;
    default:
    /* case 4: */
      p->GetHeadsFunc = p->MatchFinder->bigHash ? GetHeads4b : GetHeads4;
      /* p->GetHeadsFunc = GetHeads4; */
      p->MixMatchesFunc = (Mf_Mix_Matches)MixMatches3;
      vTable->Skip = (Mf_Skip_Func)MatchFinderMt3_Skip;
      break;
    /*
    default:
      p->GetHeadsFunc = GetHeads5;
      p->MixMatchesFunc = (Mf_Mix_Matches)MixMatches4;
      vTable->Skip = (Mf_Skip_Func)MatchFinderMt4_Skip;
      break;
    */
  }
}

redpajama_set_name: RedPajamaGithub


If you would like to nominate yourself, offer the names of potential nominees, or submit inquiries to the committee, please email waesnominations@gmail.com. Note that the nominating process is a confidential process. The committee will release the slate of nominees via Woodnet by April 21 (and subsequently in the Wildcat Week Ahead). The election of next year's Board will take place at the PTA's general membership meeting on May 1.


This policy and the accompanying resources outline the strategy for the promotion and development of literacy in The King John School. The policy is intended to ensure that a coherent approach to the promotion and development of literacy is adopted throughout the school.
Please see PDF on the right hand side to read about how King John supports Year 7 students who did not achieve the expected standard in reading or maths at the end of KS2.
It is the responsibility of all teachers to ensure that all pupils communicate effectively. This plainly includes their ability to apply their reading and writing skills successfully and to speak articulately in a range of contexts and for different purposes.
At the most basic level, students should all be able to read basic texts, write coherently and communicate clearly through speech. It can be expected that almost all students will have reached this level before they enter secondary education and the focus should then be on developing literacy skills to ensure students can communicate for different audiences and purposes through both speech and written work, and that they can read with skill e.g. inference, commenting on the effect of texts.
These skills must be developed in all subjects to ensure students become more familiar with the appropriate processes and skills, as well as understanding that literacy goes beyond their study of the English curriculum. Students should be aware of the need to adapt their communication according to context and should read often and widely across all subjects.
Some students may not have made the expected progress in terms of literacy; in this case, differentiation in individual lessons is important to ensure the required progress is made possible, and intervention may also be required through Learning Support.
'There can be no more important subject than English. It is at the heart of our culture and literacy skills are crucial to pupils' learning for all subjects… yet too many young adults lack the functional skills to make their way in the modern world.
Students are also being awarded specific marks for spelling, punctuation and grammar in many exams in different subjects which may affect students' achievements.
It is the responsibility of all staff to promote and teach elements of literacy wherever possible in lessons, as appropriate to the individual lesson and subject content. Literacy should also be promoted outside of lessons where possible.
Teaching strategies and resources should be reviewed and altered where appropriate to ensure opportunities to develop literacy are not overlooked. All departments are able to receive advice and assistance from the Literacy Coordinator.


Home > PAN Card questions > What is the minimum age required for getting pan card?
What is the minimum age required for getting pan card?
There is no specific age requirement for getting a PAN card.Even a minor can have his own PAN card. Documents for proof of identity and address of either parent would be required to be submitted. Document serving as age proof of minor along with the 2 photograph is needed. Initially, PAN card without photograph will be issued. After crossing minority an applicant can file for correction in data of PAN, furnish his photos and update his signature with the income tax authorities and thus his PAN card will be updated.
How to download Pan card as pdf ?
How to add Pan card in digilocker ?
What is "Identity data Mismatch" error while linking Aadhar card with Pan card ?
How to surrender the additional PAN card that I have ?
Can I change my pan card number ?
How can I download an e-PAN card ?