MMO MMORPG News·Interviews·Neverland Online Ingame Tour with GM N.E.
Neverland Online Ingame Tour with GM N.E.
I was given the opportunity to get a guided tour by the people from Neverland Online, the 2D MMORPG set on a mystical eastern-themed world. When I was told that I would be touring the game I was not personally expecting much especially for a browser based game. Let's just say that I became jaded with the whole browser based online gaming thing especially after getting to experience a lot of disappointing games. Upon logging into the game I was surprised that Neverland Online felt like I was logging into a client-based MMO. The whole feel was kind of surreal because I was not expecting this kind of familiarity in a browser -based MMO.
While I was waiting to connect into the game I was being entertained by the Chinese string background music playing. I think that the BGM, plus the fact that the game's interface looks like your average MMO definitely influenced me to feel that the game is like your average client-based MMO rather than a web-based one.
So upon getting inside the game I was waiting for a game master to contact me, being the impatient gamer that I am I kind of wandered within the vicinity I was put in. Lo and behold I encountered my first monster in the game. I was faced with a level 2 rabbit, yep, that's right a level 2 rabbit was my first opponent upon entering the game. The game's fight system resembled the old-school role playing of games of consoles and for those who have a thing for them would really feel nostalgic as you play Neverland Online.
After getting my behind whipped by the cute gray bunny of death, I was contacted by GM N.E. and eventually he came to get me from the mess I've managed to put myself into. When we met I was immediately introduced to the game's party system where the party leader literally has complete control over where the party goes and even what NPCs can they talk to. I was literally following N.E. all over the place during my tour.
GM N.E.'s character was a Taoist, which translates to the game's healer while I was an elementalist. Both of us were the game's magic users with me being the offensive one, but during the tour he was the one dealing the most damage with me being the official cheerleader because my character was practically hitting like a baby. However, I figured out the reason why I was hitting so weakly, I hadn't distributed the stat points that I had. So I asked GM N.E. to pause the tour for a moment and distributed the stat points that were left untouched since I logged in.
As seen on the above picture, there are five areas where you can allocate your stat on. Neverland Online helps you decide on what area to allocate the points to by providing descriptions as your cursor hovers over each area.
The descriptions helped me determine what areas I should be investing on. However seeing the outcome of my stat allocation I kind of relearned one simple rule in playing mmorpgs. Pay attention to where you click, I thought I was clicking on stamina when it turns out it was on agility so in the end my elementalist was an int-agi type. Aside from the stats, a character's strength is also determined by the skill points allocated to each skill.
After my fail attempt on allocating my stat points we continued the tour. We then discussed the pet system in the game. Neverland Online has a very nice pet system where you can practically capture any monster you face in the field. GM N.E. showed this by capturing a mist marsh crocodile we faced in one battle.
Capturing a mist marsh crocodile!
Aside from the crafting system, Neverland Online has its own bot system included. However you'd need to use scores which is acquired through paying.
All in all my Neverland tour has been a fun and enjoyable experience to say the least. Neverland Online is a game that shows a lot of promise, even if it's in the CBT stage there are a lot of things you can do. I can only imagine what else is in store for players when the games go to commercial. I must say that I was impressed game especially that this one's a web-based mmo.
With the game nearing Open Beta we'll just have to see how Neverland Online turns out now won't we?
Visit the Neverland Online Game Profile!
Visit the Neverland Online Official Website!


On May 9, 2012 the Illinois Fire Chiefs Association named Hanover Park Fire Department Fire Chief Craig A. Haigh as their Fire Chief of the Year for 2012.
The I.F.C.A. Fire Chief of the Year award recognizes the accomplishments of Illinois fire chiefs in the areas of Public Education and Life Safety Advancements, Innovative and Entrepreneurial Efforts and Accomplishments, Education Public-Private Sector Contributions and contributions at the local, state and national levels.


The Penn State Cooperative Extension's Water Webinar series provides educational programs on a variety of important water resource issues in our region. The February webinar topic is "The Effect of Climate Change on Riverine Inputs to the Chesapeake and Delaware Bays" and it will be held on February 22, 2017 from 12:00PM to 1:00PM. Everyone is welcome to participate in the live monthly Water Resource seminars but registration is required. To register, see topics for other upcoming webinars or view previous webinars, please visit the Penn State Extension's Water Resource Webinars page.


text:
CuroEnterprise
CuroGPG
CuroPET
CuroConnector
CuroCommunity
CuroBlog
Curo Background
CuroGPG Terms and Conditions
1.1 "Applicable Laws" means all applicable laws, statutes and regulations from time to time in force relevant to the provision of the Services.
1.2 "Business Day" means a day other than a Saturday, Sunday or public holiday in Scotland or England when banks in Edinburgh and London are open for business.
1.3 "Consultancy Service Provider(s)" means the consultancy service providers who the Supplier uses to provide the Customer with Consulting Support from time to time.
1.4 "Consulting Support" means the consultancy services to be provided to you the Customer, by our Consultancy Service Providers from time to time.
1.5 "Curo Gender Pay Gap Solution" means the gender pay gap software application which is used to calculate gender pay gap reports and statistics.
1.6 "Customer" means the person or firm who purchases Services from the Supplier.
1.7 "Data Breach" means (i) any unauthorised loss, corruption, damage, destruction, alteration, disclosure or access to any Personal Information; (ii) any unauthorised or unlawful Processing of Personal Information; or (iii) any breach of Data Privacy Laws.
1.8 "Data Controller" has (until 25 May 2018) the meaning given to "Controller" under the Data Protection Directive 1995/46/EU and (from 25 May 2018) the meaning given to "Controller" under the General Data Protection Regulation (EU 2016/679).
1.9 "Data Management Services" means the data management services to be provided by the Supplier as described in clause 7.1.
1.10 "Data Privacy Laws" means all laws in any relevant jurisdiction that relate to data protection, privacy, the use of information relating to individuals, and/or the information rights of individual including, without limitation, (until 25 May 2018) the Data Protection Act 1998 and any other laws in force from time to time which implement the Data Protection Directive 1995/46/EC and (from 25 May 2018) the General Data Protection Regulation (EU 2016/679), and the equivalent in any other relevant jurisdictions all as amended or replaced from time to time.
1.11 "Data Processor" has (until 25 May 2018) the meaning given to "Processor" under the Data Protection Directive 1995/46/EU and (from 25 May 2018) the meaning given to "Processor" under the General Data Protection Regulation EU 2016/679).
1.12 "Data Subject" has (until 25 May 2018) the meaning given under the Data Protection Directive 1995/46/EC and (from 25 May 2018) the meaning given under the General Data Protection Regulation (EU 2016/679).
1.13 "EEA" means the member states of the European Union, Norway, Iceland and Liechtenstein.
1.14 "ICO" means the UK Information Commissioner's Office, or the equivalent national data protection authority in any relevant jurisdiction.
1.15 "Personal Information" means any information which: i) falls within the definition of "Personal Data" under the Data Protection Directive 1995/46/EU (until 25 May 2018) and within the definition of "Personal Data" under the General Data Protection Regulation EU 2016/679 (from 25 May 2018); and ii) in relation to which the Supplier is providing the Services or which the Supplier is required to Process (subject to the Data Privacy Laws) in connection with this agreement.
1.16 "Processing" has (until 25 May 2018) the meaning given under the Data Protection Directive 1995/46/EU and (from 25 May 2018) the meaning given under the General Data Protection Regulation EU 2016/679) (and Process, Processed and Processes shall be construed accordingly).
1.17 "Services" means the provision of (1) the Curo Gender Pay Gap Solution, (2) Consulting Support and (3) the Data Management Services.
1.18 "Supplier" means Curo Compensation Limited.
1.19 "VAT" means value added tax.
1.20 "Website" means https://www.curogpg.com and/or https://www.curocomp.com.
2.1 These terms and conditions will apply to the Services purchased from the Supplier by the Customer. These terms and conditions form part of an agreement between the Customer and the Supplier. No other terms and conditions shall apply.
3. Provisions of services
3.1 These terms and conditions apply to the purchase of any of the following Services by the Customer from the Supplier:
3.1.1 Curo Gender Pay Gap Solution;
3.1.2 Consulting Support; and/or
3.1.3 Data Management Services.
4. Curo gender pay gap solution
4.1 The Curo Gender Pay Gap Solution is available in the following three standards:
4.1.1 Basic standard which allows the Customer to generate reports to assist with complying with mandatory gender pay gap reporting requirements (Basic Standard);
4.1.2 Advanced standard which comprises of the Basic Standard as well as allowing for a greater range of reports and the ability to assess data and perform comparative reporting (Advanced Standard); and
4.1.3 Premium standard which comprises of the Advanced Standard as well as the ability to provide reports against multiple legal entities and to calculate aggregated data (Premium Standard).
4.2 These terms and conditions will apply to the Basic Standard, Advanced Standard and Premium Standard versions of the Curo Gender Pay Gap Solution.
4.3 When the Customer submits the anonymised employee data to the Curo Gender Pay Gap Solution available from the Website, the Customer will be provided with the results in a report (Gender Pay Gap Report) via the Customer's account on the Website.
4.4 The reliability of the Gender Pay Gap Report is dependent on the accuracy and quality of the data uploaded to the Website by the Customer. The Supplier does not offer any guarantee or warranty, express or implied, concerning the accuracy, comprehensiveness or suitability of the information provided in the Gender Pay Gap Report. In addition, the Supplier is not responsible for the Customer's compliance with gender pay gap reporting requirements.
4.5 The results of the Curo Gender Pay Gap Solution are for the use of the Customer only.
5. Consulting support services
5.1 The Supplier engages its Consultancy Service Providers to provide the Consulting Support which the Supplier provides to the Customer, as an option, on these terms and conditions.
5.2 The Supplier shall use reasonable care and skill in the provision of the Consulting Support.
5.3 The Supplier shall endeavour to provide the Consulting Support by the date specified but time shall not be of the essence in relation to such obligations.
5.4 If the Supplier is prevented or delayed from performing its obligations due to an act or omission on behalf of the Customer, payment or part payment could still be required for the Consulting Support delivered.
5.5 The Supplier shall be entitled to engage the services of independent contractors of its own to assist with its duties.
5.6 The Customer will supply their personal information to the Supplier who shall provide it directly to the Consultancy Service Provider.
6.1 By purchasing the Consulting Support in clause 5, the Customer agrees that they shall:
6.1.1 co-operate with the Supplier in respect of all matters in relation to the provision of the Consulting Support;
6.1.2 be responsible for the safety and security of any of the Supplier's employees, agents or sub-contractors whilst on or about the Customer's premises in relation to the provision of the Consulting Support;
6.1.3 inform the Supplier of any and all relevant health and safety rules, policies or regulations which are in force or apply to the Customer's premises and which relate to the provision of the Consulting Support;
6.1.4 obtain, secure and maintain in place any and all necessary licences and consents in order to comply with any relevant legislation, rules and/or regulations that may relate to the provision of the Consulting Support.
7. Data management services
7.1 The Supplier shall provide the Customer with Data Management Services on these terms and conditions. The Data Management Services provide for the provision of assistance by the Supplier to the Customer in respect of any issues the Customer has with collecting and consolidating data which is to be provided to the Supplier for the purpose of the Curo Gender Pay Gap Solution. If the Customer purchases the Data Management Services, the Supplier will contact the Customer directly to provide an estimate of the timescale for the completion of the work.
8. Customer account
8.1 In order to use the Services, the Customer must create an account with the Supplier. The Customer must keep their password and account details confidential and the Customer is responsible for any activities that occur on the Customer's account. The Supplier shall not be liable to the Customer or any third party for any loss or damage which may arise as a result of any failure by the Customer to keep the Customer's password or account confidential. In the event that the Customer suspects someone else may be using the Customer's account, the Customer should notify the Supplier immediately. For information on how the Customer's personal data is collected and processed by the Supplier, please see the Supplier's privacy policy at https://www.curogpg.com/privacy.
9.1. All Intellectual Property Rights in or arising out of or in connection with the Services and in the design, content and arrangement of the Website (other than Intellectual Property Rights in any materials provided by the Customer) shall be owned by the Supplier.
9.2 Aside from the Gender Pay Gap Report that the Supplier will provide to the Customer, the Customer may not download, store, alter, adapt or reproduce any of the material provided in relation to the Services or on the Website without acknowledging the Supplier as the full copyright owner.
9.3 Once the Gender Pay Gap Report has been provided by the Supplier to the Customer, the Customer will own the Gender Pay Gap Report. The Customer grants the Supplier the right to use the Customer's branding for the sole purpose of preparing the Gender Pay Gap Report.
10. Data protection and data processing
10.1 The provision of the Services may require the Supplier to Process Personal Information for and on behalf of the Customer. In respect of such Processing, the parties acknowledge and agree that:
10.1.1 the Customer shall be the Data Controller and the Supplier shall be the Data Processor;
10.1.2 the Customer shall be solely responsible for determining which of the Services is used and the purpose(s) for which and the manner in which the Personal Information will be Processed by the Supplier; and
10.1.3 Clauses 10.2 to 10.7 below shall apply.
10.2 The Customer shall:
10.2.1 comply with all Data Privacy Laws;
10.2.2 obtain and maintain all relevant registrations (and similar) required by Data Privacy Laws;
10.2.3 ensure that all instructions that it issues to the Supplier comply with Data Privacy Laws; and
10.2.4 supply data in the format specified by the Supplier. The accuracy of the data provided by the Customer to the Supplier is the sole responsibility of the Customer.
10.3 When Processing Personal Information as part of the delivery of the Services, the Supplier shall:
10.3.1 Process the Personal Information only on the documented instructions of the Customer, except to the extent that any Processing of Personal Information is required by Applicable Laws;
10.3.2 where Processing of Personal Information by the Supplier is required by Applicable Laws, the Supplier shall inform the Customer of the relevant legal requirement before processing, unless such law prohibits the Supplier from doing so;
10.3.3 notify the Customer where the Supplier reasonably believes any documented instructions from the Customer in respect of the Processing of Personal Information infringe any Data Privacy Laws or any other Applicable Laws;
10.3.4 ensure that its personnel who are authorised to Process the Personal Information have committed themselves to confidentiality;
10.3.5 implement appropriate technical and organisational measures to ensure a level of security appropriate to the risk of Processing;
10.3.6 only appoint a third party to Process Personal Information on its behalf in accordance with clauses 10.4 and 10.5 below;
10.3.7 taking into account the nature of the Processing, assist the Customer by appropriate technical and organisational measures, insofar as this is possible, for the fulfilment of the Customer's obligation to respond to requests for exercising the Data Subject's rights under Data Privacy Laws;
10.3.8 notify the Customer without undue delay after becoming aware of a Data Breach;
10.3.9 assist the Customer in its compliance with its obligations under Data Privacy Laws in respect of notifying Data Breaches to the ICO and affected Data Subjects, insofar as it is able taking into account the nature of the Processing and the information available to the Supplier;
10.3.10 at the Customer's discretion, delete or return to the Customer all of the Personal Information Processed under this agreement on completion of the Services, and delete any copies of such Personal Information unless any Applicable Laws require that copies are kept; and
10.3.11 make available to the Customer all information necessary to demonstrate compliance with its obligations in this clause 10.3.
10.4 The Supplier has the right to sub-contract the Processing of Personal Information. The Supplier's sub-contractors will comply with these terms and conditions, as if those subcontracting were a party hereto.
10.5 Where the Supplier sub-contracts its Processing of Personal Information to a third party in accordance with clause 10.4 above, the Supplier shall:
10.5.1 ensure that any such third party is subject to the same data protection obligations as those set out in clause 10.3 above;
10.5.2 obtain sufficient guarantees from any such third party that they will implement appropriate technical and organisational measures in such a manner that the Processing of Personal Information by such third party will meet the requirements of Data Privacy Laws; and
10.5.3 remain liable to the Customer for any Processing of Personal Information by any such third party.
10.6 Each party shall co-operate with the ICO on the request of the other party in respect of the performance of its tasks under this agreement.
10.7 The Customer shall indemnify, defend and hold harmless the Supplier from any and all losses, liabilities (including provision for contingent liabilities), fines, compensation, damages, costs and expenses arising from or in connection with any Data Breach by the Customer.
11. Fees and Expenses
11.1 Curo Gender Pay Gap Solution. The following charges shall apply in respect of the Curo Gender Pay Gap Solution:
11.1.1 Basic Standard – FREE;
11.1.2 Advanced Standard – £1,500 + VAT per annum; and
11.1.3 Premium Standard – £5,000 + VAT per annum.
11.2 Consulting Support. The Customer will pay the Supplier for the time spent performing the Consulting Support at the following rates:
11.2.1 Basic rate of £1,500 for 2 hour remote consultation; and
11.2.2 Advanced rate of £3,600 for half day on site workshop.
11.3 100% of the Consulting Support fees are payable if consulting days are cancelled by the Customer with less than 5 working days' notice, and 50% of fees are payable if cancelled between 5 – 10 days' notice.
11.4 The Customer shall either pay for the Consulting Support in advance or the Supplier shall deliver to the Customer an invoice once the Consulting Support has been provided. The Supplier is registered for VAT and any VAT due shall be shown separately on the invoice. If the Customer is issued with an invoice, the fee shall be payable by the Customer 30 days after the date of such invoice. Payment can be made via online payment portal.
11.5 In respect of invoice payments, the Supplier reserves the right to charge interest at the rate of 4% over the base rate of Bank of England in force from time to time, or such higher rate as is allowed by statute, on all sums outstanding in excess of the timescales set out in clause 11.3 above from the date of issue of an invoice by the Supplier.
11.6 The Supplier reserves the right to suspend and/or terminate provision of the Consulting Support should any fee remain outstanding beyond the timescales set out in clause 11.3 above. The Supplier will notify the Customer if it decides to suspend and/or terminate the provision of the Consulting Support in these circumstances. In the event that the Supplier terminates the Consulting Support for any reason, any and all fees incurred up to the date of termination and remaining unbilled, will then be invoiced by the Supplier to the Customer and shall be payable immediately.
11.7 The Supplier reserves the right to review fees periodically and in any event, shall do so annually. The Customer shall be given a minimum of 60 days' notice of any change in the fees before such change shall take effect. Any changes to the fees will be notified on the Supplier's Website.
11.8 Data Management Services shall be provided at a rate of £125 per hour, with part hours rounded up to the nearest hour. Before commencing the provision of any Data Management Services, the Supplier shall provide an estimate of how long the work will take to complete. The estimate shall not be binding. The Customer shall pay for all time spent providing Data Management Services.
12.1 The contract formed between the Supplier and the Customer on the basis of these terms and conditions shall automatically terminate six months after acceptance by the Customer of these terms and conditions and the Customer shall immediately pay for any Services that the Supplier has provided which have not been paid for.
12.2 In relation to the provision of the Consulting Support, either party may terminate this agreement by written notice in the event that:
12.2.1 there is serious breach of the terms provided such breach (where capable of remedy) has not been remedied within 30 days of receipt of written notice from the terminating party specifying the breach;
12.2.2 the other party passes a resolution, or the court makes an order, that such other party be wound up otherwise than for the purpose of bona fide reconstruction or amalgamation, or a receiver, manager, administrative receiver or administrator on behalf of a creditor is appointed in respect of such other party's business or any part thereof.
12.3 Upon expiration or termination of these terms for any reason:
12.3.1 any and all accrued rights of the Supplier shall continue and be exercisable by the Supplier;
12.3.2 the Customer shall pay the Supplier for all unpaid charges and reimburse expenses accrued up to that date.
13. Supplier's Liability
13.1 The Supplier excludes to the fullest extent permitted by law any liability for any loss or damage, howsoever arising, out of or in connection with the Customer's use of the Curo Gender Pay Gap Solution, the Data Management Services or the Website, including, without limitation, direct or indirect loss, consequential loss or damage, loss of profit or goodwill, loss arising from use or inability to use, loss arising from any errors or omissions in the Website provided always that the Customer's statutory rights are not affected by such exclusions.
13.2 In relation to the Customer's use of the Consulting Support, the Supplier shall not be liable to the Customer whether in contract, tort (including for negligence or breach of statutory duty), misrepresentation (whether innocent or negligent), restitution or otherwise for any loss of profits, loss of business, depletion of goodwill or similar losses, or pure economic loss, or for any indirect or consequential loss, costs, damages, charges or expenses howsoever arising.
13.3 The Customer hereby indemnifies the Supplier against any and all liabilities, costs (including legal costs), expenses, damages and all other losses suffered or incurred by the Supplier and arising out of or in connection with:
13.3.1 the Customer's failure to provide the obligations set out in clause 6 above; and
13.3.2 use of the Consulting Support other than in accordance with these terms and conditions.
13.4 The Supplier's total aggregate liability in contract, tort (including negligence or breach of statutory duty), misrepresentation (whether innocent or negligent), restitution or otherwise, arising in connection with the performance or contemplated performance of the Consulting Support will be limited to the fee received by the Supplier from the Customer during the preceding 12 month period.
13.5 The Supplier makes every effort to ensure that the Website is free from viruses or defects. However, the Supplier cannot guarantee that the Customer's use of the Website or any the websites accessible through it will not cause damage to the Customer's computer and no warranty is given in that respect. It is the Customer's responsibility to ensure that the Customer has the right equipment required to use this Website and that the Customer screens out anything that may damage it. The Supplier will not be liable to the Customer or any third party for any loss or damage which may arise to computer equipment as a result of using the Website.
13.6 The Supplier does not exclude or limit in any way the Supplier's liability to the Customer where it would be unlawful to do so. The Supplier accepts full liability for any:
13.6.1 death or personal injury caused by its negligence, or the negligence of its employees, agents or subcontractors;
13.6.2 fraud or fraudulent misrepresentation; or
13.6.3 any other liability which cannot be limited or excluded by applicable law.
14. Force Majeure Event
14.1 Neither party will be liable for any failure or delay or for the consequences of any failure or delay in performance of these terms and conditions if such delay or failure results from events, circumstances or causes beyond its reasonable control.
15.1 The Supplier may transfer, assign, sub-contract or otherwise dispose of the Supplier's rights and obligations under these terms and conditions to any person at any time provided that the Supplier reasonably believes that the Customer's rights will not be affected.
15.2 The Customer may not transfer, assign, amend or dispose in any way of any of the Customer's rights or obligations arising under these terms and conditions, without the Supplier's prior written consent.
16.1 Neither party shall use the other party's confidential information for any purpose other than to perform its obligations under the terms and conditions.
17.1 These terms and conditions constitute the entire agreement between the Supplier and the Customer and supersedes and extinguishes all previous agreements, promises, assurances, warranties, representations and understandings between them, whether written or oral, relating to its subject matter.
17.2 Each party acknowledges that in entering into these terms it does not rely on, and shall have no remedies in respect of any statement, representation, assurance or warranty that is not set out in these terms. Each party agrees that it shall have no claim for innocent or negligent misrepresentation based on any statement in the terms.
17.3 Nothing in this clause shall limit or exclude any liability for fraud.
18.1 The Supplier has the right to vary these terms and conditions from time to time. The revised terms and conditions will be applicable with immediate effect once published on the Website. It is the Customer's responsibility to regularly consult the Website to check for updates to the terms and conditions.
19.1 A waiver of any right or remedy under these terms and conditions or by law is only effective if given in writing and shall not be deemed to be a waiver of any subsequent breach or default.
20.1 If any provision or part-provision of the terms and conditions is or becomes invalid, illegal or unenforceable, it shall be deemed modified to the minimum extent necessary to make it valid, legal and enforceable.
20.2 If modification is not possible, the relevant provision or part-provision shall be deemed deleted.
20.3 Any modification to or deletion of a provision or part-provision shall not affect the validity and enforceability of the rest of these terms and conditions.
21. Third Party Rights
21.1 A person who is not a party to these terms has no rights to enforce any term of, or enjoy any benefit under these terms.
22.1 These terms and conditions shall be governed by and construed in accordance with English Law. Any disputes or claims (including non-contractual disputes or claims) arising from them shall be submitted to the exclusive jurisdiction of the English Courts.

redpajama_set_name: RedPajamaCommonCrawl


Preben Kierkegaard: The Public Libraries in Denmark. Copenhagen. 1950. 103 p.
The modern Danish library system includes research technical, and public libraries. The two first groups cater to scientific research and training. The last group distributes instructive and educational literature of all categories besides giving the People access to a store of books which will satisfy the needs of readers on all cultural levels.
The history of the research libraries of this country began with the foundation, in the fifteenth century, of the present University Library. Prior to that time churches and monasteries possessed libraries which may be traced far back into the Middle Ages. The public libraries, on the other hand, with the special task ascribed to them, are a 20th century innovation.
The underlying idea of the Public Library system was first formulated by one man, Professor Andr. Schack Steenberg. Studies in political economy had led him to take a profound interest in social problems. In 1885, while holding a mastership in the State Grammar School at Horsens, he became head of a workers' evening institute and so was plunged headlong into the problems with which the lower classes were struggling. At the same time he was the librarian of the Grammar School, and came to think that the desire for education which he found among the workers could best be met by means of books and libraries. So he opened the Grammar School library to the general public. His example was followed by others. But such isolated efforts did not satisfy Mr. Steenberg, and the reorganization of the library service throughout the country became his goal. In the nineties he established contacts abroad, especially with the British and Americans, collecting information about their public libraries. These studies gave him an impression of the importance attached, especially in AngloSaxon countries, to the general education available through free public libraries. On trips to England, and later to America, he got first?hand impressions of the enormous extent and fine quality of the work done.
In this country he started an intense and tireless propaganda to raise library work to a level far above mere entertainment and to make it a first?class educational factor.
Since 1882, the State had given annual grants amounting to kr. 6000 to the popular libraries. In 1897-98 the grant was increased to kr. 14.000, and the "State Committee for the Support of Popular Libraries" was formed for the administration of this grant. Naturally, Mr. Steenberg became a member of the said Committee, which distributed the funds provided by the State Grant proportionally to the budgets of the various public libraries. Further, he established travelling libraries of about fifty volumes to be lent through the parish libraries. By this time the library movement had got into stride throughout the country. Everywhere new libraries were established and those already in existence were improved. The larger libraries were by this time also beginning to assist the parish libraries and to provide for the needs of the population of their districts.
1902 marked a milestone in Danish library work, as the Aarhus State Library was founded in that year. It was not to function as an ordinary public library. Fiction, for instance, was not lent. On the other hand it was to serve as a kind of Central Library for provincial libraries which might there borrow non?fiction which they did not themselves possess. Further, travelling libraries similar to those of the Library Committee, were set up. And last but not least, the new State Library was to cater to individual borrowers in the provinces, who might send in direct orders for non?fiction. The State Library started with a stock of about 150.000 volumes, largely duplicate copies originating from The Copenhagen Royal Library, or other special collections. This stock was to be increased partly through compulsory contributions from all printers who were under legal obligation to supply one copy of all their printed matter, and partly by purchases of foreign literature for which the Library received a very modest grant.
Gradually the circle of the library?minded had become very wide, representing all classes and strata of the population. But elementary school teachers were the driving force in this work. In the course of time a certain amount of co?operation became desirable, and in 1905 the "Association of Popular Libraries in Denmark" was established. This was to be a combination of libraries for such purposes as holding propaganda meetings, publishing the "Bogsamlingsbladet" (i. e. The Popular Library journal), advising librarians on the manifold problems which might arise, and to be of service to library work generally. In 1909 the first joint meeting of librarians was held at Aarhus. This meeting became another milestone of the movement, for here, Mr. H.O. Lange, Chief Librarian of The Copenhagen Royal Library, read a paper on "The Library Movement outside Copenhagen" - a paper marked by realism and wideness of outlook. In it he laid down the aims and procedure to be realized in later library development. H.O. Lange made proposals for an entirely new system of County Libraries. There was to be a large County Library in the chief town of each county. Together they were to function as connecting links between the small?town and parish libraries, and also between the local libraries and the great research and technical libraries. Their lending stock was to be very large for Dcnmark - up to 50.000 volumes ? a choice collection of Danish and foreign literature. It was to be made possible for the man in the street to borrow such books and also the elementary literature, which was to be sent in suitable consignments to the parish libraries to provide a wider choice of reading matter. From the County Libraries, whose heads were to be trained librarians, was to come the initiative for the solution of the library problems of the whole district. H.O. Lange pointed to American libraries which were to serve as models and showed two lines of advance: organization and legislation. Just as education begins with elementary schools and goes on through secondary schools and universities, so libraries were to be organized as an organic whole consisting of parish libraries and county libraries, with the research libraries on top. In his opinion, county libraries ought not to become state institutions; they should remain the property of, local organizations, and - in contradiction, for instance, to the English County Libraries ? they were to serve as public libraries not only for the home town but also for the surrounding rural district. The necessary funds were to be provided through Government grants.
For the first time a complete scheme for the Public Library System was formulated, providing a valuable basis for further discussion and planning of future work. H.O. Lange's ideas met with great sympathy; but there was also some resistance, especially from some of the representatives of the parish libraries.
In 1909, Steenberg gave up his mastership at the Horsens State Grammar School to take over the newly established office of Government Adviser on Public Library Questions. From now on he would be able to concentrate all his energies on the cause. After a few years it became necessary to give Steenberg an efficient, qualified assistant in his ever?increasing work. The choice fell upon Th. Døssing of the Aarhus State Library, whose work had put him into touch with the Public Libraries. Thus he had become interested in the whole System, for which, later on, he came to mean so much. His work gave immediate results: in 1913 he introduced a slightly modified form of Dewey's American system of decimal classification and cataloguing as well as the Cuttermarks. It was of importance that, at this early stage, library work was standardized throughout the country at a time when numerous new libraries were springing up in both rural and urban communities.
The thorough and important reorganization which took place at the time also proved advantageous to the library system of Copenhagen. This great development was superintended by Mr. J. Aarsbo, the City Librarian, the first librarian in this country to create a modern public library copied on AngloAmerican lines. In 1913, he combined the already existing City District Libraries in one organization, formed round a newly erected Central Library, containing a large collection of the more advanced literature which might be borrowed on request through the branch libraries. The "open shelves" ? principle was introduced as well as the systematic and dictionary card catalogues. The use of the library was made free of charge; to a large extent libraries were kept open all day; trained librarians were employed, etc. This re?organization, carried through with great technical skill and eminent understanding of popular educational and cultural work, provided the rest of the country - regardless of local conditions - with the very best model. No doubt the high standard characteristic of the work of J. Aarsbo and his assistants was of great importance for other urban libraries which were soon to face similar problems.


text:
\section{Introduction}

Judging whether two Boolean functions are equivalent under input negation and/or input permutation and/or output negation (NPN) is an important problem applied in integrated circuit design, logic synthesis , logic verification, and so on. In cryptography, affine equivalence is used to resolve S-box problem \cite{YanZhang2016}. Technology mapping is the process of selecting logic gates from a library to implement a Boolean circuit \cite{B.Kapoor11995,Mailhot1990,M.Damiani2003}. However, every Boolean function has many NPN-equivalent Boolean functions. Technology mapping searches for an optimal combination of logic gates in terms of area, performance and power dissipation. In the cell-library binding process, some of the cells of a library are found to realize some part of a multiple-level representation of a Boolean function \cite{Debnath2004}. Two Boolean functions $f$ and $g$ are NPN equivalent if a transformation $T$ exists that can transform $f$ to $g$. In technology mapping and cell-library binding, Boolean matching is a key step.

In recent years, numerous methods have emerged to solve the NPN Boolean matching problem. The main approaches focus on the canonical-based, pairwise and SAT-based algorithms. In the canonical-based algorithms, two Boolean functions are NPN-equivalent when they have the same canonical form. An NPN-equivalent class has a canonical representative, and all the Boolean functions in an NPN-equivalent class can be transformed to this canonical representative. The canonical representative may have a maximal truth table or a minimal truth table or a maximal signature vector \cite{Adbollahi2008,Agosta2009,Chai2006,Debnath2004,Ciric2003,Agosta2007,Huang2013,Petkovska2016}.

A pairwise Boolean matching algorithm searches the correspondence relation of the variables of two Boolean functions by their signatures. In the pairwise Boolean matching process, the search operation terminated when it finds a transformation $T$ that can transform one Boolean function into the other. The authors of \cite{K.C.Chen1993,Abdollahi2008,Y.T.Lai1992,Juling} presented a pairwise Boolean matching algorithm.

The NPN Boolean matching problem is converted to one that involves solving Boolean satisfiability (SAT) problem. To check whether a Boolean function $f$ is equivalent to a Boolean function $g$ , the SAT-based algorithm first constructs a circuit with the functionality $f \oplus g$ and then generates a SAT instance (circuit CNF). Finally, it judges the Boolean satisfiability of this circuit CNF \cite{WangKuoHua2009}. When the circuit CNF is satisfied, $f$ is not NPN-equivalent to $g$. In contrast, $f$ is NPN-equivalent to $g$ when the circuit CNF is not satisfied.

It is well known that the search space complexity of NPN Boolean matching is $n!2^{n+1}$ using the exhaustive method. Therefore, the exhaustive method is computationally infeasible when the number of inputs is large, and thus, it is important to reduce the search space regardless of what approach is used. Many properties of Boolean functions are used to reduce the search space, including positive unate, negative unate, cofactor and symmetry, and so on.

This paper studies canonical-based NPN Boolean matching for single-output specified Boolean functions. We exploit a new compact canonical form using a DC signature vector. The canonical representative of an NPN equivalent class has the maximal DC signature vector. The use of the symmetry class, independent class and Boolean difference signature dramatically reduce the search space of the canonical transformation. The experimental results reflect that using the Boolean difference signature is highly conductive for distinguishing variables. The proposed algorithm enhances the NPN Boolean matching speed and reduces the search space significantly.

The remainder of this paper is organized as follows. In Section \uppercase\expandafter{\romannumeral2}, we survey the state of the Boolean matching problem. Section \uppercase\expandafter{\romannumeral3} introduces related preliminaries and definitions used in our algorithm. Section \uppercase\expandafter{\romannumeral4} presents our canonical-based algorithm in detail. We demonstrate the effectiveness of our algorithm by presenting experimental results in Section \uppercase\expandafter{\romannumeral5}, and we summarize our work and outline future work in Section \uppercase\expandafter{\romannumeral6}.

\section{Related Works}
Numerous scholars have contributed to this problem in prior Boolean matching studies. The authors of \cite{Adbollahi2008,Agosta2009,Chai2006,Debnath2004,Ciric2003,Agosta2007,Huang2013,Petkovska2016} studied the canonical-based Boolean matching algorithm and proposed many practical methods for computing the canonical representative. The authors of \cite{Agosta2009} studied the P-equivalence problem and proposed a formal framework that unified the spectral and canonical-based approaches. They found a linear transformation to improve the speed of P-equivalence matching. Chai and Kuehlmann of \cite{Chai2006} designed a fast Boolean matching that used satisfied counts to assign the phases of the Boolean function and its variables, the sums of rows or columns to search permutation, and symmetry to refine transformations. In \cite{Debnath2004}, a canonical-based algorithm was presented that used table look-ups and a tree-based breadth-first search to find the canonical representative with the smallest value in the binary representation. Ciric and Sechen \cite{Ciric2003} proposed the minimum-cost canonical form for P-equivalence matching. In \cite{Agosta2007}, the authors unified multiple canonical-based approaches and proposed a new P-equivalence matching algorithm. Generally, in the canonical-based Boolean matching algorithms, the canonical representative has the maximal or minimal truth table. Abdollahi and Pedram \cite{Adbollahi2008} exploited a new canonical form using signature vector to resolve the NPN Boolean matching problem. The algorithms proposed in \cite{Huang2013} and \cite{Petkovska2016} used general symmetry and higher-order symmetry to realize fast NPN Boolean classification. They classified a number of Boolean functions with 6-16 inputs.

Many Boolean matching approaches have emerged based on SAT. In a SAT-based Boolean matching algorithm, Boolean matching is converted to a SAT or UNSAT problem. The authors of \cite{Katebi2010,Matsunaga2016,WangXiuQin2013,WangKuoHua2009,Safarpour2006,KuoHua2007} all studied Boolean matching using the SAT technique. The authors of \cite{Katebi2010} proposed PP-equivalence matching based on graphs, simulation and SAT; their approach can be applied to large-scale circuits. Matsunaga \cite{Matsunaga2016} presented a Boolean matching method for LUT-based circuits by using one-hot encoding and the CEGAR technique to speed up Boolean matching \cite{Matsunaga2016}. The authors of \cite{WangXiuQin2013} exploited architectural symmetry in PLB and proposed a SAT-based Boolean matching algorithm to resolve FPGA technology mapping. Wang et al. \cite{WangKuoHua2009} integrated the simulation and SAT technique, and proposed a P-equivalent Boolean matching approach.

 A pairwise Boolean matching algorithm was presented in \cite{K.C.Chen1993} for multiple-output Boolean functions with don't care sets and applied Boolean matching to technology mapping to optimize circuits. Abdollahi \cite{Abdollahi2008} proposed a signature-based Boolean matching to resolve NPN-equivalent problem for single-output incompletely specified Boolean functions. They tested their Boolean matching approach on 4-10 inputs Boolean functions. The authors of \cite{Y.T.Lai1992} utilized a level-first strategy and a set of filters to reduce the search space in the pairwise Boolean matching process, while \cite{Juling} unified the structural signature of Boolean functions and Shannon expansion to exploit a pairwise Boolean matching algorithm.

A few other methods exist for solving the Boolean matching problem. In \cite{Moore2008}, the authors studied NPN Boolean matching using a Walsh Spectral Decision Diagram, and achieved an efficiency higher than that of Luks' hypergraph method. Lai et al. \cite{Chih-Fan2010} utilized a conflict-driven learning method to solve the multiple-output Boolean function matching problem.

\section{Preliminaries and Problem Statement}

Let $f(x_1,x_2,\cdots,x_{n})$ be a single-output completely specified Boolean function and $X=(x_1,\cdots,x_n)$ be a vector of $f$. $|f|$ denotes the number of minterms in $f$, which is also called the 0th-order signature.

 $X_{\pi}(x_1,\cdots,x_n)=(x_{\pi(1)},\cdots,x_{\pi(n)})$ is an input permutation and $X_{\varphi}(x_1,\cdots,x_n)=(x_{1}^{\varphi(1)},\cdots,x_{n}^{\varphi(n)})$ is an input negation. $x_{i}^{\varphi(i)}=x_i$ when ${\varphi(i)}=1$, and $x_{i}^{\varphi(i)}={\overline{x}}_i$ when ${\varphi(i)}=0$. NPN equivalence is introduced by $f \equiv g \Leftrightarrow f = {(g \circ {X_\pi } \circ {X_\varphi })^\phi }$, where $\varphi \in {\cal B}^n(\phi \in {\cal B})$ \cite{Hinsberger1998}.

\textbf{Definition 1: (NP transformation)} An NP transformation, $T$, is an onto mapping where $T =\{ {x_1}, \cdots ,{x_n}\}  \mapsto \{ x_{_{\pi (1)}}^{\phi (1)}, \cdots ,x_{_{\pi (n)}}^{\phi (n)}\}  $.

For each Boolean function $f$ in an NPN-equivalent class with a canonical representative $\mathbb F$, there must be an NP transformation $\cal T$ that can transform $f$ to $\mathbb F$, (i.e., $f({\cal T}X)=\mathbb F$ or $\overline{f({\cal T}X)}=\mathbb F$). The $\cal T$ is called a canonical transformation. Boolean function $f_1$ is NPN-equivalent to $f_2$ if and only if they have the same canonical representative (i.e., ${\mathbb F}_1={\mathbb F}_2$).

A cofactor is a generalized signature of a Boolean function that has been used in many Boolean matching algorithms.

\textbf{Definition 2: (Cofactor signature):} The cofactor signature of $f$ with respect to $x_i({\overline{x}}_i)$, $|f_{x_i}|(|f_{{\overline{x}}_i}|)$, is the onset size of $f_{x_i}(f_{{\overline{x}}_i})$, where $f_{x_i}=f[x_i \leftarrow 1]$ and $f_{{\overline{x}}_i}=f[x_i \leftarrow 0]$.

The cofactor signature of $f$ with respect to a cube $b$, $|f_b|$, is the onset size of $f_b$, where $f_b=f[b \leftarrow 1]$. If the cube $b$ has $k$ variables, $|f_b|$ is denoted as the kth-order signature \cite{Adbollahi2008}.

A Boolean function may have some independent variables; however, the value of a Boolean function is irrelevant to these independent variables. The negative cofactor and positive cofactor of a variable are used to check its independence.

\textbf{Definition 3: (Boolean difference signature)} The Boolean difference signature of $f$ with respect to $x_i$,$|f_{x_i}^{'}|$, is the onset size of $f_{x_i}^{'}$, where $f_{x_i}^{'}=f_{x_i} \oplus f_{{\overline{x}}_i}$ \cite{Jin2006}.

A variable $x_i$ is said to be an independent variable when it satisfies $|{f'_{x_i}}|=0$. The independence property of an independent variable does not changed under NP transformation.

\textbf{Definition 4: (Variable symmetry):} The variables $x_i$ and $x_j({\overline{x}}_j)$ of a Boolean function $f$ are symmetric if $f$ is invariant after swapping $x_i$ and $x_j({\overline{x}}_j)$ \cite{Jin2006}.

Two NP transformations are equal when two or more symmetric variables are permuted. Therefore, symmetry is always used to reduce the search space for Boolean matching.

\section{Canonical-based Boolean Matching}
The goal of our algorithm is to find the canonical transformation $\cal T$ of a Boolean function $f$, which can transform $f$ to $\mathbb F$ that has the maximal DC signature vector. During the search process, we search many candidate canonical transformations by sorting and grouping variables. Then, we compare the DC signature vectors of these candidate canonical transformations to find the target canonical transformation $\cal T$.

\subsection{The Proposed Canonical Form}
 The canonical form presented in \cite{Adbollahi2008} has the maximal signature vector. For some Boolean functions, many variables have the same cofactor signature and are not symmetric variables. In this case, the algorithm proposed in \cite{Adbollahi2008} will generate multiple splitting ways, which increases the search space of canonical transformation. Therefore, to reduce the search space, further methods to distinguish these variables are required.

Although the variables of many Boolean functions have the same cofactor signature, their Boolean difference signatures are the different. Therefore, we proposes DC signature vector that can resolve the shortcoming in \cite{Adbollahi2008} described above.

 \textbf{Definition 5: ($\prec $)} Let "$ \prec $" denote the lexicographic comparison of two vectors.

\textbf{Definition 6: ($1^{st}$ DC signature value)} The $1^{st}$ Boolean Difference and Cofactor (DC) signature value of a Boolean function $f$ with respect to $x_i$ is a two-tuple $(|f_{x_i}|,|f_{x_i}^{'}|)$.

The $1^{st}$ DC signature values of the two variables $x_i$ and $x_j$ of a Boolean function $f$ are $(|f_{x_i}|,|f_{x_i}^{'}|)$ and $(|f_{x_j}|,|f_{x_j}^{'}|)$, respectively. When they satisfy one of the two following cases, then $(|f_{x_i}|,|f_{x_i}^{'}|) \prec (|f_{x_j}|,|f_{x_j}^{'}|)$ and the relation of $x_i$ and $x_j$ is $x_i < x_j$.

1)  $|f_{x_i}|<|f_{x_j}|$

2) $|f_{x_i}|=|f_{x_j}|$ and $|f_{x_i}^{'}|<|f_{x_j}^{'}|$

\textbf{Definition 7: (\emph{k}th-order DC signature value)} The \emph{k}th-order DC signature value of a Boolean function $f$ with respect to a cube b, $b=x_{i1}\cdots x_{ik}$, is $(|f_{x_{i1}\cdots x_{ik}}|,|f_{x_{i1}\cdots x_{ik}}^{'}|)$.

\textbf{Definition 8: ( DC signature vector)} The DC signature vector of an \emph{n}-input Boolean function $f$ is

${D^f} = \{ |f|,(|f_{x_1}|,|f_{x_1}^{'}|),\cdots,(|f_{x_n}|,|f_{x_n}^{'}|),(|f_{x_1x_2}|,|f_{x_1x_2}^{'}|),\newline \cdots,(|f_{x_{n-1}x_n}|,|f_{x_{n-1}x_n}^{'}|),\cdots,
(|f_{x_1 \cdots x_{n-1}}|,|f_{x_1 \cdots x_{n-1}}^{'}|),\newline (|f_{x_2 \cdots x_{n}}|,|f_{x_2 \cdots x_{n}}^{'}|),|f_{x_1 \cdots x_n}|\} $, which is composed of its \emph{0}th-order signature, $1^{st}$ DC signature values and higher order DC signature values up to the \emph{n}th-order signature.

The authors of \cite{Adbollahi2008} proved that each Boolean function has a unique signature vector. Therefore, each Boolean function also has a unique DC signature vector. We need not prove that here.

\textbf{Definition 9: (The canonical representative)} The canonical representative of an NPN-equivalent class $EC=\{f_1,\cdots,f_m\}$ is the Boolean function that has the maximal DC signature vector.

Assume that two Boolean functions $f$ and $g$ have the DC signature vectors $D^f$ and $D^g$. When comparing $D^f$ and $D^g$, we compare their 0th-order signature first, then their $1^{st}$ DC signature values, 2nd-order DC signature values and higher DC signature values until an inequality is encountered. $D^f \prec D^g$ when the corresponding DC signature value of $D^f$ is less than that of $D^g$. If and only if $D^f \prec D^g$, the order relation of $f$ and $g$ is $f<g$.

\textbf{Definition 10: (The maximal canonical transformation)} The transformation $C_f=(t_1,t_2,\cdots,t_n)$ that has the maximal DC signature vector is the maximal canonical transformation.

In this paper, we use $T=(t_1,t_2,\cdots,t_n)$ to denote a candidate canonical transformation searched in a canonized process where $t_i=x_{{\pi}(i)}^{{\varphi}(i)}$. For a candidate canonical transformation $T$, the DC signature vector is as follows:

${D^T} = \{ |f|,(|f_{t_1}|,|f_{t_1}^{'}|),\cdots,(|f_{t_n}|,|f_{t_n}^{'}|),(|f_{t_1t_2}|,|f_{t_1t_2}^{'}|),\newline \cdots,(|f_{t_{n-1}t_n}|,|f_{t_{n-1}t_n}^{'}|),\cdots,
(|f_{t_1 \cdots t_{n-1}}|,|f_{t_1 \cdots t_{n-1}}^{'}|),\newline (|f_{t_2 \cdots t_{n}}|,|f_{t_2 \cdots t_{n}}^{'}|),|f_{t_1 \cdots t_n}|\} $

 In the canonized process, multiple candidate canonical transformations similar to $T$ exist. The maximal canonical transformation $C_f$ is the candidate canonical transformation that has the maximal DC signature vector. Consider two candidate canonical transformations $T1$ and $T2$: $T1 < T2$ when $D^{T1} \prec D^{T2}$.

 For an \emph{n}-input Boolean function $f$, $n!2^n$ NP transformations exist. The canonical transformation $\cal T$ of a Boolean function $f$ is the transformation that can transform $f$ to $\mathbb F$ when $\mathbb F$ has the maximal DC signature vector in its NPN-equivalent class. We use $C_f$ to express the maximal canonical transformation of Boolean function $f$ found in the canonical process. The input phase assignment and reindexing transformation is $X=(x_1,\cdots,x_n)$ to $C_f=(t_1,\cdots,t_n)$, where ${\mathbb F}(C_f)=f(X)$. The relation between $f$ and $\mathbb F$ can be expressed by an NP transformation $\cal T$, where $X={\cal T}C_f$ \cite{Adbollahi2008}. Therefore, the canonical form of a Boolean function $f$ is $f({\cal T}X)$, and $f({\cal T}X)=f({C_f}^{-1}X)$.

 The key step of our algorithm is sorting and grouping the variables according to their DC signature values. After each grouping, a group result is obtained. We denote $G$ as the group result of $f$, and $G=\{G_1,\cdots,G_m\}$, where $m \in \{1,\cdots,n\}$. Every group $G_i$ has one or multiple classes, and each class has one or multiple variables. We use $G_i=\{C_{i1},\cdots,C_{ik}\}$ denote a group with $k$ classes.

 In the process of grouping variables, each group may have many classes. We categorize these as asymmetric, symmetric and independent classes.

 \textbf{Definition 11: (Asymmetric class)} Every asymmetric variable in a group is an asymmetric class.

 \textbf{Definition 12: (Symmetric class)} A variable set $C_i=\{x_{i1},\cdots,x_{ik}\}$ and $k\in \{2,\cdots,n\}$ is a symmetric class if any arbitrary two variables in $C_i$ are symmetric.

  \textbf{Definition 13: (Independent class)} A variable set $C_i=\{x_{i1},\cdots,x_{ik}\}$ and $k\in \{1,\cdots,n-1\}$ is an independent class if every variable in $C_i$ is an independent variable.

\subsection{Compute Canonical Form}

The maximal canonical transformation $C_f$ is found after comparing all the candidate canonical transformations. We first try to use the $1^{st}$ DC signature value to group the variables. When the $1^{st}$ DC signature values can not resolve all the groups, we use the 2nd-order DC signature values and higher DC signature values until all the groups are resolved. Then, our algorithm generates a candidate canonical transformation.

Before search candidate canonical transformation, our algorithm need to do some  preparatory works including phase assignment, symmetry checking and independent variable checking. The method of determining the phase of Boolean function and variable is similar to \cite{Adbollahi2008}.

The first comparison values are $|f|$ and $|\overline f|$. If $|f|>|{\overline{f}}|$, there is no negation to output; otherwise, there is a negation to the output. When $|f|=|{\overline{f}}|$, our algorithm need to test $f$ and $\overline{f}$.

The phase of a variable is obtained by comparing the size of its positive and negative cofactors. The phase of $x_i$ is positive when $|f_{x_i}|>|f_{{\overline{x}}_i}|$, and negative when $|f_{x_i}|<|f_{{\overline{x}}_i}|$. When $|f_{x_i}|=|f_{{\overline{x}}_i}|$, we need to use a higher signature to determine its phase. If the higher signature cannot determine its phase, we must try both positive and negative.

If variable $x_i$ of a Boolean function $f$ is an independent variable, the phase of $x_i$ is assigned as positive when $|f_{x_i}|=|f_{{\overline{x}}_i}|$ because $x_i$ is independent to the Boolean function. If $f$ has $k$ independent variables and their phases cannot be determined by comparing the positive and negative cofactors, we may try two phases; which doubles the search space. Therefore, checking independent variables is a necessary operation.

\floatname{algorithm}{Procedure}
\renewcommand{\algorithmicrequire}{\textbf{Input:}}
\renewcommand{\algorithmicensure}{\textbf{Output:}}
    \begin{algorithm}
    \small
        \caption{Compute Canonical Form}
        \begin{algorithmic}
            \Require $f$
            \Ensure  $\mathbb F$
            \Function {Canonical}{$f$}
            \State CT\_List=NULL
            \State Create Boolean function $f$ and compute $|f|$
            \If {$|f|<|\overline{f}|$}
                \State $f=\overline{f}$
            \EndIf
                \State Compute the $1^{st}$ DC signature of $f$
                \State Determine the phase of $x_1,\cdots,x_n$
                \State Check the independent variables
                \State Check the symmetric variable
                \State m=group($f$)
                \State SEARCH($f, CT\_list, group,m$)
           \If {$|f|=2^{n-1}$}
                \State $f=\overline{f}$
                \State Compute the $1^{st}$ difference signature of $f$
                \State Determine the phases of $x_1,\cdots,x_n$
                 \State Check the independent variables
                \State Check the symmetry variable
                \State m=group($f$)
                \State SEARCH($f, CT\_list, group,m$)
            \EndIf
             \State ${\cal T}={C_f}^{-1}$
             \State Return $f({\cal T}X)$
            \EndFunction
        \end{algorithmic}
    \end{algorithm}

The purpose of Procedure 1 is to compute the canonical form of a Boolean function $f$. The individual tasks in Procedure 1 are as follows.

1) Compute $|f|$ and determine the phase of $f$.

2) Compute the $1^{st}$ DC signature values of all variables of $f$.

3) The $1^{st}$ DC signature value determines the phases of all variables. Variables whose phases are not determined are handled in Procedure 2. The method used is the same as that described in \cite{Adbollahi2008}.

4) Check the symmetry of all variables.

5) Check the independent variables. If the phases of independent variables are not determined, assign the positive phase to them.

6) Group all variables by comparing their $1^{st}$ DC signature values.

7) Call Procedure 2 to get the maximal canonical transformation $C_f$.

8) Compute canonical form by the maximal canonical transformation $C_f$.

\textbf{Example 1:} Consider a 7-input Boolean function $f(X)=x_3{\overline{x}}_5x_7+{\overline{x}}_1{\overline{x}}_2x_4+{\overline{x}}_1{\overline{x}}_2{\overline{x}}_4x_5{\overline{x}}_6+
x_3{\overline{x}}_4x_5{\overline{x}}_6+x_2{\overline{x}}_3{\overline{x}}_4x_5{\overline{x}}_6+{\overline{x}}_2{\overline{x}}_3{\overline{x}}_4x_5{\overline{x}}_6  $, whose phase assignment and group variables are as follows.

Procedure 1 computes $|f|=46$ and assigns a positive phase to $f$. Then, it computes the $1^{st}$ DC signature value of all the variables of $f$, and the results are \{(16,28), (16,28), (30,28), (22,44), (24,44), (15,32), (30,28)\}. The variables $x_3$, $x_5$ and $x_7$ are positive, and the others are negative.

Check the symmetry of every variable. There are two symmetric class $\{x_1,x_2\}$ and $\{x_3,x_7\}$. Group the variables according to the $1^{st}$ DC signature value. The grouping result is $G=\{G_1,G_2,G_3\}$, and $G_1=\{C_{11}\}=\{{\overline{x}}_6\}$, $G_2=\{C_{21},C_{22}\}=\{\{{\overline{x}}_1,{\overline{x}}_2\},\{x_3,x_7\}\}$ and $G_3=\{C_{31},C_{32}\}=\{\{{\overline{x}}_4\},\{x_5\}\}$.

\subsection{Searching the Canonical Transformations}

After obtaining the initial group results, Procedure 2 begins to search candidate canonical transformations. Procedure 2 first addresses the first group $G_1$, then group $G_2$, and so on until all groups have been resolved. A group $G_i$ is resolved when $G_i$ has only one class. There are three possible cases when group $G_i$ is resolved.

1) Group $G_i$ has only one asymmetric variable and the phase of this variable is determined.

2) Group $G_i$ has multiple variables, an arbitrary two variables of $G_i$ are symmetric, and the phases of all variables of $G_i$ are determined.

3) Group $G_i$ has one or more variables, all of which are independent variables.

Because the Boolean difference signature of an independent variable is $0$ and the Boolean difference signature of dependent variable must not be $0$, a group contains only independent variables when any independent variable occurs.

   When searching candidate canonical formations, all the candidate canonical transformations are stored in a tree and Procedure 2 uses a depth-first search to find candidate canonical transformations. Each branch of the candidate canonical transformation tree is a candidate canonical transformation. In Procedure 2, CT\_list is the candidate canonical transformation tree, which is initialized to NULL. $T$ is the candidate canonical transformation found in the search process, and $C_f$ is the maximal canonical transformation, which is initialized empty.

\floatname{algorithm}{Procedure}
\renewcommand{\algorithmicrequire}{\textbf{Input:}}
\renewcommand{\algorithmicensure}{\textbf{Output:}}
    \begin{algorithm}
    \small
        \caption{Canonical transformation search process}
        \begin{algorithmic}
            \Require $f,map\_list, group,m$
            \Ensure  $C_f$
            \Function {Search}{$f,CT\_list,group,m$}
                 \If {$D_1$}
                     \If {$Empty(C_f)$}
                        \State $C_f=T$
                     \ElsIf{$D^{C_f} \prec D^T $}
                         \State $C_f=T$
                      \EndIf

                 \Else
                     \ForAll {$G_i,i \in (1,\cdots,m)$}
                        \If {$D_2$}
                         \State  break
                        \EndIf
                     \EndFor

                     \If {$D_3$}
                         \State Add the variables in $G_i$ to CT\_list
                         \State SEARCH($f, CT\_list, group,m$)
                     \Else
                       \ForAll{$C_{ij},C_{ij}\in G_i$ }
                            \State Split $G_i$
                            \State create node\_list
                       \EndFor
                       \ForAll{$node\_j$ in node\_list}
                         \State UPDATE\_SEQUENCE($node\_j,group$)
                         \State m=m+1
                         \If {$D_1$}
                             \If {$Empty(C_f)$}
                                 \State $C_f=T$
                              \ElsIf{$D^{C_f} \prec D^T $}
                                       \State $C_f=T$
                               \EndIf
                         \Else
                           \State Add the variables in $G_i$ to CT\_list
                           \State Update\_signature($f$)
                           \State m=group($f$)
                           \State SEARCH($f, CT\_list, group,m$)
                         \EndIf
                      \EndFor
                \EndIf
                \EndIf
            \EndFunction
        \end{algorithmic}
    \end{algorithm}

Let $G=\{G_1,G_2,\cdots,G_m\}$ be the grouping results that Procedure 1 obtained using the $1^{st}$ DC signature values. The first step in Procedure 2 is to check whether all groups are resolved. Here we use the condition $D_1$ to denote whether all groups are resolved.

When $D_1$ is true, Procedure 2 finds a candidate canonical transformation $T$. When this occurs, Procedure 2 assigns $T$ to $C_f$ if $C_f$ is empty or $D^{C_f} \prec D^T $. Then, Procedure 2 continues to search for other candidate canonical transformations until all the candidate canonical transformations have been searched.

When $D_1$ is false, some groups could not be resolved. At this point, Procedure 2 searches the group $G_i$ which is an unresolved group that has the minimal sequence number. Condition $D_2$ becomes true when an unresolved group is found.

When group $G_i$ (the unresolved group having the minimal sequence number) is found, it is handled in two ways.

1) Group $G_i$ can be resolved.

The condition $D_3$ denotes whether group $G_i$ can be resolved. When $D_3$ is true, Procedure 2 adds all the variables in $G_i$ to the candidate canonical transformation tree and calls itself recursively.

In Example 1, the condition $D_1$ is false. Procedure 2 finds that group $G_1$ is the first unresolved group and that it can be resolved in this call. Procedure 2 adds variable ${\overline{x}}_6$ to the candidate canonical transformation tree, giving a new layer with a node. Then, Procedure 2 calls itself recursively.

2) Group $G_i$ cannot be resolved.

When condition $D_3$ is false, Procedure 2 splits group $G_i$. Group $G_i$ has $k$ classes; thus, there are $k$ approaches for splitting it. Let group $G_i=\{C_{i1},\cdots,C_{ik}\}$, select one class as group $G_i$; the other classes are in group $G_{i+1}$. The first splitting approach is $P_1=\{G_i,G_{i+1}\}=\{\{C_{i1}\},\{C_{i2},\cdots,C_{ik}\}\}$, the second splitting approach is $P_2=\{G_i,G_{i+1}\}=\{\{C_{i2}\},\{C_{i1},C_{i3},\cdots,C_{ik}\}\}$, and the \emph{k}th splitting approach is $P_k=\{G_i,G_{i+1}\}=\{\{C_{ik}\},\{C_{i1},\cdots,C_{i(k-1)}\}\}$. Note when the phases of the variables of group $G_i$ are not determined, there are $2k$ splitting approaches, because we need to try the positive and the negative.

Suppose there are $k$ splitting approaches. These $k$ splitting approaches are stored in the variable node\_list. Then, Procedure 2 selects one splitting approach from the variable node\_list in order. Let Procedure 2 selects the \emph{q}th splitting approach $P_q=\{G_i,G_{i+1}\}=\{\{C_{iq}\},\{C_{i1},\cdots,C_{i(q-1)},C_{i(q+1)},\cdots,C_{ik}\}\}$, Procedure 2 calls UPDATE\_SEQUENCE() to update the sequence number of the groups from $G_i$ to $G_m$. the group sequence number of the variables of $C_{iq}$ remains unchanged and the group sequence number of the variables of $\{C_{i1},\cdots,C_{i(q-1)},C_{i(q+1)},\cdots,C_{ik}\}$ is incremented by one. Finally, the group sequence number of the variables of original group $G_{i+1},\cdots, G_m$ is incremented by one, and the value of $m$ is incremented by one.

Then, Procedure 2 checks the condition $D_1$. When condition $D_1$ is true, Procedure 2 creates a candidate canonical transformation $T$ and compares the DC signature vector of $T$ and $C_f$. When condition $D_1$ is false, the \emph{q}th branch is added to the $|C_{iq}|$ layers as one layer with one node. In other words, $|C_{iq}|$ expresses the number of variables in $C_{iq}$. Procedure 2 calls Update\_signature() to update the DC signature value of $f$ and regroups the variables of $G_{i+1},\cdots,G_m$, and calls itself recursively.

Procedure 2 starts with the first splitting approach and then processes the next splitting approach until all splitting approaches have been processed.

 In Example 1, after handling group $G_1$, group $G_2$ is the next unresolved group with the minimal sequence number. Group $G_2$ has two symmetric classes; therefore, it can not be resolved. There are two ways to split group $G_2$: $P_1=\{G_2,G_3\}=\{\{{\overline{x}}_1,{\overline{x}}_2\},\{x_3,x_7\}\}$ and $P_2=\{G_2,G_3\}=\{\{x_3,x_7\},\{{\overline{x}}_1,{\overline{x}}_2\}\}$. The first branch added to the candidate canonical transformation tree has two layers with the nodes ${\overline{x}}_1$ and ${\overline{x}}_2$. The second branch added to the candidate canonical transformation tree has two layers with the nodes $x_3$ and $x_7$.

  Procedure 2 selects one splitting approach in sequence and updates the DC signature values. The method for updating the DC signature is similar to that used in \cite{Adbollahi2008} to update signatures. In Example 1, Procedure 2 uses variable ${\overline{x}}_6$ to compute the 2nd-order DC signature value for the other variables. Thus, there are new DC signature values, and Procedure 2 regroups all the unresolved groups and calls itself recursively.

Our algorithm uses three strategies to reduce the search space.

1) A symmetric class has multiple variables. When we group and sort variables, all the variables of a symmetric class are regarded as a single operational object.

2) Take advantage of the independence of independent variable. When the phase of independent variables cannot be determined, we assign positive phase to them. If we do not make use of independent variable, a independent class $C_{il}$ is a symmetric class. When the phases of the variables in $C_{il}$ are not determined, the number of candidate canonical transformations is doubled. When there are other symmetric classes having the same signatures to $C_{il}$, the number of candidate canonical transformations is grow even more.

3) The combination of the cofactor signature and Boolean difference signature can better distinguish variables.

In Example 1, after updating the DC signature using variable ${\overline{x}}_1$, variables ${\overline{x}}_4$ and $x_5$ are also resolved. There are two candidate canonical transformations $T1=\{{\overline{x}}_6,{\overline{x}}_1,{\overline{x}}_2,x_3,x_7,{\overline{x}}_4,x_5\}$ and $T2=\{{\overline{x}}_6,x_3,x_7,{\overline{x}}_1,{\overline{x}}_2,{\overline{x}}_4,x_5\}$. The candidate canonical transformation tree of Example 1 is shown in Fig. 1.

\begin{figure}[!h]
\centering
\includegraphics[width=0.25\textwidth,height=5cm]{fig1}
\caption{The candidate canonical transformation tree of Example 1}
\label{fig.1}
\end{figure}

For a 7-input Boolean function, there are $7!2^7$ NP transformations, while only two candidate canonical transformations exist after using our algorithm in Example 1. Through the DC signature vector comparison, the maximal canonical transformation $C_f$ is $\{{\overline{x}}_6,{\overline{x}}_1,{\overline{x}}_2,x_3,x_7,{\overline{x}}_4,x_5\}$.

To demonstrate that our algorithm is superior to the algorithm proposed in \cite{Adbollahi2008}, we use both algorithms to search the maximal candidate canonical transformations in Example 2.

\textbf{Example 2:} Consider a 6-input Boolean function $f(X)={\overline{x}}_1x_2x_3{\overline{x}}_4+x_1x_2{\overline{x}}_3{\overline{x}}_4+{\overline{x}}_1{\overline{x}}_2{\overline{x}}_3x_4+{\overline{x}}_1x_2x_3x_6+
{\overline{x}}_1x_2x_4x_5{\overline{x}}_6+x_1{\overline{x}}_2x_3{\overline{x}}_6+x_1x_2{\overline{x}}_3x_6+{\overline{x}}_1{\overline{x}}_2{\overline{x}}_3{\overline{x}}_4{\overline{x}}_5+
{\overline{x}}_1{\overline{x}}_2x_3{\overline{x}}_4x_6+{\overline{x}}_1{\overline{x}}_2x_3x_5x_6+{\overline{x}}_1{\overline{x}}_2{\overline{x}}_3x_5{\overline{x}}_6+
{\overline{x}}_1x_2{\overline{x}}_3x_4{\overline{x}}_5{\overline{x}}_6+x_1x_2x_3x_4{\overline{x}}_5{\overline{x}}_6+x_1{\overline{x}}_2{\overline{x}}_3{\overline{x}}_4x_5x_6     $. We use both the signature vector from \cite{Adbollahi2008} and the DC signature vector proposed in this paper to search the candidate canonical transformations.

1) Using the algorithm of \cite{Adbollahi2008}, the candidate canonical transformation search process is as follows.

The algorithm from \cite{Adbollahi2008} computes the $1^{st}$ signature, checks the symmetry and groups variables. The Boolean function $f$ has 32 minterms, i.e., $|f|=32$. The results of the $1^{st}$ signature are $|f_{x_1}|=13$ and $|f_{x_2}|=|f_{x_3}|=|f_{x_4}|=|f_{x_5}|=|f_{x_6}|=16$. There are no symmetric classes. The phase of variable $x_1$ is negative and the phases of the other variables are not determined. According to the $1^{st}$ signatures, the grouping result is $G=\{G_1,G_2\}=\{\{x_1\},\{x_2,x_3,x_4,x_5,x_6\}\}$.

 The first group $G_1$ can be resolved, and the variable ${\overline{x}}_1$ is used to compute the 2nd-order signature of the variables in $G_2$. The results are $|f_{{\overline{x}}_1x_2}|=9$ and $|f_{{\overline{x}}_1x_3}|=|f_{{\overline{x}}_1x_4}||f_{{\overline{x}}_1x_5}||f_{{\overline{x}}_1x_6}|=10$. We know that $|f_{{\overline{x}}_1}|=|f|-|f_{x_1}|=19$; therefore, we can determine the phases of these 5 variables. Variable $x_2$ is negative and the others are positive. But $G_2$ cannot be resolved: these 5 variables have the same 2nd-order signature. Group $G_2$ has \emph{5} asymmetric classes, the algorithm of \cite{Adbollahi2008} splits $G_2$ and there are five ways to split it.

\begin{itemize}
  \item $P_1=\{G_2,G_3\}=\{\{x_2\},\{x_3,x_4,x_5,x_6\}\}$
  \item $P_2=\{G_2,G_3\}=\{\{x_3\},\{x_2,x_4,x_5,x_6\}\}$
  \item $P_3=\{G_2,G_3\}=\{\{x_4\},\{x_2,x_3,x_5,x_6\}\}$
  \item $P_4=\{G_2,G_3\}=\{\{x_5\},\{x_2,x_3,x_4,x_6\}\}$
  \item $P_5=\{G_2,G_3\}=\{\{x_6\},\{x_2,x_3,x_4,x_5\}\}$
\end{itemize}

The algorithm of \cite{Adbollahi2008} traverses each possible split shown above. We select the first split approach as an example. The updated groups are $G_1=\{x_1\}$, $G_2=\{x_2\}$ and $G_3=\{x_3,x_4,x_5,x_6\}$.

 Group $G_2$ can be resolved; therefore, we use variable ${\overline{x}}_2$ to compute 2nd-order signature and group variables. The 2nd-order signatures of the unresolved variables are $|f_{{\overline{x}}_2x_3}|=|f_{{\overline{x}}_2x_4}|=|f_{{\overline{x}}_2x_5}|=|f_{{\overline{x}}_2x_6}|=8$. From these results, we also know that group $G_3$ also cannot be resolved. There are four ways to split it as follows.

\begin{itemize}
  \item $P_1=\{G_3,G_4\}=\{\{x_3\},\{x_4,x_5,x_6\}\}$
  \item $P_2=\{G_3,G_4\}=\{\{x_4\},\{x_3,x_5,x_6\}\}$
  \item $P_3=\{G_3,G_4\}=\{\{x_5\},\{x_3,x_4,x_6\}\}$
  \item $P_4=\{G_3,G_4\}=\{\{x_6\},\{x_3,x_4,x_5\}\}$
\end{itemize}

Continuing, the algorithm of \cite{Adbollahi2008} computes its signature and splits the group. Because variables $x_2,x_3,x_4,x_5$ and $x_6$ always have the same 2nd-order signature, the following computations will generate a total of $5\times 4 \times 3 \times 2$ candidate canonical transformations.

2) Using the algorithm proposed by this paper, the candidate canonical transformation search process is as follows.

 Our algorithm computes the $1^{st}$ DC signature value of each variable, checks the symmetry, and searches the independent variables and groups variables by the $1^{st}$ DC signature value.

    Boolean function $f$ has no symmetry classes or independent classes. The $1^{st}$ DC signature values are $(|f_{x_1}|,|f_{x_1}^{'}|)=(13,64)$, $(|f_{x_2}|,|f_{x_2}^{'}|)=(16,36)$, $(|f_{x_3}|,|f_{x_3}^{'}|)=(16,52)$, $(|f_{x_4}|,|f_{x_4}^{'}|)=(16,20)$, $(|f_{x_5}|,|f_{x_5}^{'}|)=(16,12)$ and $(|f_{x_6}|,|f_{x_6}^{'}|)=(16,28)$.

    Because $|f|=32$, we can determine that the phase of variable $x_1$ is negative and the phases of others are not determined. Our algorithm groups the variables and generates 6 groups: $G_1=\{x_1\}$, $G_2=\{x_3\}$, $G_3=\{x_2\}$,$G_4=\{x_6\}$, $G_5=\{x_4\}$ and $G_6=\{x_5\}$.

Group $G_1$ can be resolved. The other groups are not resolved because the phases of the variables in these groups have not been determined. Our algorithm uses the variable ${\overline{x}}_1$ to compute the 2nd-order DC signature values, which are: $(|f_{{\overline{x}}_1x_2}|,|f_{{\overline{x}}_1x_2}|^{'})=(9,18)$, $(|f_{{\overline{x}}_1x_3}|,|f_{{\overline{x}}_1x_3}|^{'})=(10,26)$, $(|f_{{\overline{x}}_1x_4}|,|f_{{\overline{x}}_1x_4}|^{'})=(10,10)$, $(|f_{{\overline{x}}_1x_5}|,|f_{{\overline{x}}_1x_5}|^{'})=(10,6)$, and $(|f_{{\overline{x}}_1x_6}|,|f_{{\overline{x}}_1x_6}|^{'})=(10,14)$.

From the above 2nd-order DC signature values, the phases of all variables are determined. Therefore, groups $G_2$, $G_3$, $G_4$, $G_5$ and $G_6$ are all resolved. One candidate canonical transformation is generated: $\{{\overline{x}}_1,x_3,{\overline{x}}_2,x_6,x_4,x_5\}$.

Because $|f|=|{\overline{f}}|$, the algorithm of \cite{Adbollahi2008} and ours must both perform the same search for $\overline{f}$. However, the Boolean function $f$ results in 240 candidate canonical transformations when computed by the algorithm of \cite{Adbollahi2008} but only 2 when computed by the algorithm proposed in this paper.

Using our algorithm, the NPN Boolean matching algorithm is denoted as follows: Given two Boolean function $f(X)$ and g(X), Boolean function $f$ is NPN-equivalent to $g$ if the canonical form $\mathbb F$ of $f$ is equal to the canonical form $\mathbb G$ of $g$.

\section{Experimental Results}

We reimplemented the algorithm of \cite{Adbollahi2008} to compare it with the algorithm of this paper and obtain supporting experimental evidence. The two algorithms were tested on a set of randomly generated circuits and a set of MCNC benchmark circuits. The two circuit sets include a number of NPN-equivalent circuits. We tested the NPN matching runtime and the number of candidate canonical transformations generated when searching for the canonical transformation of a Boolean function. The runtime is measured in seconds. The following experimental results were obtained on a computer equipped with 3.3 GHz CPU and 4GB RAM.

 Tables \uppercase\expandafter{\romannumeral1} and \uppercase\expandafter{\romannumeral2} show the experimental results on the random circuit and MCNC benchmark circuit sets, respectively. In these two tables, the first column shows the number of inputs (\#I), the second and third columns show the average matching runtime (\#A.T) and the average number of candidate canonical transformations (\#A.C.T) of the algorithm in \cite{Adbollahi2008}, respectively, and the forth and fifth columns show the average matching runtime and the average number of candidate canonical transformations of our algorithm, respectively.

\begin{table}[htp]
\label{Tab1}
\caption{Boolean matching results on the random circuits}
\centering
\begin{tabular}{|p{0.3cm}|p{1cm}| p{1cm}|p{1cm}|p{1cm}|}
\hline
\#I &\#A.T of \cite{Adbollahi2008} &\# A.C.N of \cite{Adbollahi2008} &\# A.T of ours  & \# A.C.N of ours\\
\hline
7&0.0007 	&13.2	&0.0005 	&7.3 	  \\
\hline
8&0.0009	&22.1 	&0.0004 	&5.3  \\
\hline
9 &0.0010 	&16.8 	&0.0007 	&6.1 \\
\hline
10 &0.0013	&19.6 	&0.0004 	&3.6  \\
\hline
11&0.0032	&19.1	&0.0020	&4.3 \\
\hline
12& 0.0068 	&12.5 	&0.0048 	&4.5  \\
\hline
13 & 0.0099	&17.2 	&0.0043 	&3.7   \\
 \hline
14 & 0.0097 	&14.8 	&0.0062 	&4.2  \\
\hline
15 & 0.0078 	&16.5 	&0.0044	&4.2   \\
\hline
16& 0.0249 	&13.9	&0.0135 	&5.0   \\
\hline
17 & 0.0326 	&23.4	&0.0208 &5.9  \\
\hline
18 & 0.0423 	&13.3 	&0.0261 	&5.0  \\
\hline
19 & 0.1565 	&15.8	&0.1070	&5.8  \\
\hline
20 & 0.1195	&12.5 	&0.0974 	&5.6  \\
\hline
21 & 0.0859 	&13.3 	&0.0708 	&4.9   \\
\hline
22& 0.1349 	&18.3	&0.1186	&6.8  \\
\hline
\end{tabular}
\end{table}

The experimental results listed in Table \uppercase\expandafter{\romannumeral1} show that our algorithm improves the speed of the Boolean matching process and reduces the search space effectively. In the best case, our algorithm's runtime is 70\% faster and its search space is 82\% smaller than that of the algorithm from \cite{Adbollahi2008}. On average, our algorithm improves the runtime by 37\% and reduces the search space by 67\%. Fig. 2 shows the results on the equivalent random circuits.

\begin{figure}[!h]
\centering
\includegraphics[width=0.5\textwidth,height=9cm]{data}
\caption{The comparison results on the equivalent random circuits}
\label{fig.1}
\end{figure}
\footnotetext[1]{A.T: Average runtime, A.C.N: Average number of candidate canonical transformations}

\begin{table}[htp]
\label{Tab2}
\caption{Boolean matching results on the MCNC benchmark circuits}
\centering
\begin{tabular}{|p{0.3cm}|p{1cm}| p{1cm}|p{1cm}|p{1cm}|}
\hline
\#I &\#A.T of \cite{Adbollahi2008} &\# A.C.N of \cite{Adbollahi2008} &\# A.T of ours  & \# A.C.N of ours\\
\hline
7&0.00215 	&66.7 	&0.00037 	&2.4 \\
\hline
8&0.00989 	&27.1 	&0.00939 	&26.3 \\
\hline
9 &0.00163 	&3.0 	&0.00169 	&2.8\\
\hline
10 &0.00098 	&2.1 	&0.00103 	&2.1 \\
\hline
11&0.00283 	&3.2 	&0.00211	&2.3\\
\hline
12& 0.00177 	&2.7 	&0.00173 	&2.2 \\
\hline
13 & 0.04242 	&7.8 	&0.02971 	&6.5  \\
\hline
14 & 0.00713 	&2.1 	&0.00784 	&2.0 \\
\hline
15 & 0.02730 	&2.4 	&0.02818	&2.4  \\
\hline
16& 0.00238 	&2.9	&0.00246 	&2.4  \\
\hline
17 & 0.18872 	&2.8	&0.19304 	&2.5 \\
\hline
18 & 0.21707 	&4.4 	&0.21725 	&2.4 \\
\hline
19 & 1.13960 	&3.4	&1.04902	&2.1 \\
\hline
20 & 1.90159 	&3.8 	&2.07058 	&3.7 \\
\hline
21 & 7.1248 	&2.0 	&6.6848 	&1.8  \\
\hline
22& 13.9547 	&4.5 	&14.3204 	&4.0 \\
\hline
\end{tabular}
\end{table}

Form Table \uppercase\expandafter{\romannumeral2}, we can see that the average runtime improves by 83\% and the search space is reduced by 96\% compared with \cite{Adbollahi2008} when the number of input variables is 7. However, neither the runtime nor the search space are drastically improved in the other input cases. In majority of the circuits of the MCNC benchmark, using only cofactor signature serves to quickly identify the variables. Therefore, the average runtime of the algorithm of \cite{Adbollahi2008} when tested on 22 inputs is slightly faster than ours. Despite this, our algorithm improves the average runtime by 6\% and reduces the average search space by 19\% compared with that of \cite{Adbollahi2008} when tested on the MCNC benchmark circuits.

\section{Conclusions}

In this paper, we propose a canonical-based Boolean matching algorithm. The proposed DC signature vector is more effective in computing canonical form than the algorithm of \cite{Adbollahi2008}. We test the runtime and the canonical transformation search space of Boolean matching algorithms with 7-22 inputs. The experimental results show that the average runtime of our algorithm is 37\% faster and its search space is 67\% smaller than those of the algorithm proposed in \cite{Adbollahi2008}. The algorithm proposed in this paper is highly effective at reducing the search space and enhancing the Boolean matching speed. In future work, we plan to extend this Boolean matching approach to Boolean matching with don't care set and multiple-output Boolean matching.

\ifCLASSOPTIONcaptionsoff
  \newpage
\fi

\section*{Acknowledgment}

We would like to thank the National Natural Science Foundation of China (Grant No. 61572109, No. 11371003) and the Special Fund for Bagui Scholars of Guangxi (Grant No. 113000200230010) for their support for technology.

\bibliographystyle{./IEEEtran}

redpajama_set_name: RedPajamaArXiv


text:
Home/This Week/Here's the full schedule of summer video game livestreams
Here's the full schedule of summer video game livestreams
E3 is not taking place this year, but a plethora of independently created video game announcement livestreams are popping up. From Sony to Geoff Keighley to THQ Nordic, a lot of people and companies are airing video game livestreams that gaming fans will want to tune into over the course of this summer.
These are the most important video game reveal-focused livestreams that you should keep an eye on between June and August 2022 via Digital Trends' Summer Gaming Marathon coverage.
June 2: State of Play
Sony is holding another State of Play at 3 p.m. PT on June 2. Similar to March's showcase, this one will feature multiple games, rather than being dedicated to one game like Sony's Gran Turismo 7 and Hogwarts Legacy State of Play streams. Specifically, Sony says in a PlayStation Blog post that its fans should expect "exciting reveals from our third-party partners, plus a sneak peek at several games in development for PlayStation VR2." It doesn't look like God of War: Ragnarok will show up here, but it will certainly be a welcome surprise if it does.
June 6: LRG3 Showcase
Physical game distributor Limited Run Games and Mega64 announced that they would hold the third annual LRG Showcase at 1 p.m. PT on June 6, 2022 on Twitch. The LRG3 Showcase will feature 30 games overall, mainly highlighting titles that Limited Run Games plans to give a physical release to over the next year.
June 7: Sonic Central
June is a big month for Sonic as Sega continues to share new info on Sonic Frontiers and prepares to release Sonic Origins on June 23. As part of its June festivities for the blue blur, Sega is holding yet another Sonic Central livestream to reveal "project, partnerships, and events happening in 2022." It begins at 9 a.m. PT on June 7.
June 9: Upload VR Showcase
Fans of VR games will want to tune into the Upload VR Showcase at 8 a.m. on June 9. This presentation is solely focused on highlighting upcoming VR games from developers big and small. While Upload VR isn't teasing any specific games for the show, the article confirming the event claims that it will have "the most new game reveals we've ever featured at a showcase, including some from companies yet to release VR games."
June 9: Summer Game Fest
This year's #SummerGameFest will feature events, activities and updates for fans from more than 30 partners, with more to be announced.
It's going to be a great month for video game fans.
Get ready! pic.twitter.com/vLaRGnbtBK
— Geoff Keighley (@geoffkeighley) May 31, 2022
At 11 a.m. PT on June 9, Geoff Keighley will host his second annual Summer Game Fest livestream dedicated to showing exciting games from publishers big and small. The re-reveal of Elden Ring happened during last year's stream, so this is definitely a stream that you'll want to keep an eye on. The tweet above confirms that major publishers like 2K, Activision, Capcom, EA, PlayStation, Sega, WB Games, and Xbox are participating. The showcase will last two hours.
June 9: Day of the Devs: SGF Edition
Summer Game Fest's showcase will be immediately followed by Day of the Devs: SGF Edition at 1 p.m. PT. This showcase will highlight a variety of upcoming video games. A press release for the event confirms that it will feature a new trailer for Bear and Breakfast and a new game from Monument Valley developer Ustwo Games, in addition to plenty of other independent developers.
June 9: Devolver Marketing Countdown to Marketing
Devolver Digital will hold another satirical showcase at 3 p.m. PT on June 9. Titled the "Devolver Marketing Countdown to Marketing," expect this showcase to poke fun at how companies countdown to their main showcases with pre-shows and highlight some new games from Devolver. Cult of the Lamb is confirmed to be there, and Devolver is also promising to reveal some new games during the show.
June 10: Epic Games Summer Showcase
We're joining #SummerGameFest with our very own Summer Showcase, diving into new announcements and updates for PC titles on the Epic Games Store! ☀🏝
❤ this tweet for a reminder when we go live on Twitch tomorrow, June 10 at 2:00 PM ET. pic.twitter.com/ZIG275EiF2
— Epic Games Store (@EpicGames) June 9, 2022
At 11 a.m. PT on June 10, Epic Games is holding its own video game showcase. It says the event will primarily be focused on "diving into new announcements and updates for PC titles on the Epic Games Store" that are launching both in 2022 and next year.
June 10: The Outriders: Wordslayer Endgame Broadcast
At 11:45 a.m. PT on June 10, Square Enix and People Can Fly will hold yet another Outriders Broadcast. This livestream will be specifically focused on endgame content for Outriders: Worldslayer, a massive expansion for the sci-fi shooter that is launching on June 30.
June 10: Tribeca Games Spotlight
As part of Summer Game Fest, Tribeca will highlight its 2022 game selections during a livestream at 12 p.m. PT on June 10. We know that Tribeca's game selections this year are A Plague Tale: Requiem, American Arcadia, As Dusk Falls, Cuphead – The Delicious Last Course, Immortality, Oxenfree II: Lost Signals, The Cub, Thirsty Suitors, and Venba, so this livestream won't have much in the way of surprises. Still, it will provide updates on some of the industry's best-looking indie games.
June 11: Future of Play Direct
IGN is getting in on the video game showcase fun with the Future of Play Direct at 10:30 a.m. PT on June 11. IGN promises that the event will have "new game announcements, trailers, musical performances, special guests, and more." While the event will likely be focused on indie titles, some cool new game may emerge during this showcase.
June 11: Wholesome Direct 2022
Wholesome Direct is a yearly livestream that highlights cute indie games that are much more wholesome than violent. The event's organizers tease that this year's event will have "new game reveals, exclusive footage, and even games that will launch during the show," so it's worth tuning into if you want to see what cute indie games should be on your radar.
June 11: Future Games Show
GamesRadar is holding yet another gaming showcase at 12 p.m. PT on June 11. Future Games Show livestreams often focus on highlighting cool indie and AA games, so don't expect the next major AAA bombshell to be here. But we can expect reveals from companies like Amanita Design, Team17, and Thunderful. Overall, GamesRadar claims that 40 games will be shown during June's Future Games Show.
June 11 and 13: Guerrilla Collective 3
The Guerilla Collective is an indie showcase that takes place over the course of two separate days. The first presentation takes place at 8 a.m. PT on June 11 while the second one follows it up at 1 p.m. PT on June 13. You can see lists of many of the indie games participating in both the June 11 and June 13 events on the Guerrilla Collective's website.
June 12: Xbox & Bethesda Games Showcase
The Xbox & Bethesda Games Showcase (no Activision just yet) returns at 10 a.m. PT on June 12. Even though Redfall and Starfield were both recently delayed to 2023, this is still probably going to contain our best looks at these games yet! On top of that, there are plenty of other upcoming Xbox exclusives that Microsoft could show like Avowed, Fable, the new Forza Motorsport, Contraband, and Perfect Dark. Ultimately, Microsoft has a lot to prove with this year's showcase as it needs to demonstrate why 2022 will still be a compelling year for Xbox consoles and Game Pass without Redfall and Starfield. Check out everything that was announced.
June 12: PC Gaming Show
Just a couple of hours after Xbox and Bethesda's showcase, you can expect PC Gamer to hold an announcement-filled livestream of its own. The PC Gaming Show starts at 12:30 p.m. on June 12 and will contain over 45 upcoming PC games. Titles teased by PC Gamer so far include Arma 4, a Half-Life: Alyx mod called Levitation, Immortality, Warhammer 40,000: Space Marine 2, Victoria 3, and unannounced games from Klei Entertainment and 11 Bit Studios. If you're a fan of PC Gaming, this is definitely a show you'll want to tune into.
June 13: Capcom Showcase
Following a strong showing at Sony's State of Play, Capcom will hold its second annual Capcom Showcase at 3 p.m. PT on June 13. Capcom promised on Twitter that it would last 35 minutes and contain "news and in-depth updates on previously announced Capcom titles." Hopefully, we see more of Monster Hunter Rise: Sunbreak, Street Fighter 6, and Resident Evil 4 Remake!
June 14: Xbox Games Showcase Extended
Did you think Microsoft only had one show this year. Like in 2021, Xbox is holding a second showcase to show more games and provide deeper looks at the ones it announced. It takes place at 10 a.m. PT on June 14, and while it probably won't be as eventful as the June 12 showcase Xbox fans should still tune in.
June 16: 10 Years of Dragon's Dogma
During the Capcom Showcase on June 13, Capcom confirmed that a 10 Years of Dragon's Dogma livestream will be held at 3 p.m. PT on June 16. While Capcom says the livestream is mainly about discussing "how and what Dragon's Dogma came to be," it's possible that we'll finally learn about its long-rumored sequel during the stream.
July 28: Annapurna Interactive Showcase 2022
Annapurna Interactive is holding its second annual game showcase at 12 p.m. PT on July 28 . It will specifically focus on new game reveals and announcements from the boutique indie game publisher known for titles like Neon White, Stray, Twelve Minutes, and Solar Ash.
August 12: THQ Nordic Digital Showcase
THQ Nordic, one of the better-known subsidiaries of Embracer Group, will hold a showcase of its own this August. While THQ Nordic hasn't confirmed what titles it's showing yet, a sizzle reel for the event featured SpongeBob SquarePants: The Cosmic Shake, Jagged Alliance 3, and Outcast 2 – A New Beginning. The event begins at 12 p.m. PT on August 12 and will be preceded by a preshow featuring HandyGames, another Embracer subsidiary.
August 24: Future Games Show
Yes, another Future Games Show from GamesRadar will take place this August. We don't know when this livestream will start or what games will be featured as GamesRadar's focus is currently on the June showcase. As we get closed to Gamescom and this event though, we'll almost certainly learn more.
August 24-28: Gamescom 2022
While E3 isn't happening this year, its European counterpart is. Gamescom 2022 will be held between August 24 and August 28 both in-person in Cologne, Germany, and online. While specific times and featured games haven't been teased yet, the event's website confirms that game showcase livestreams like Gamescom: Opening Night Live and Gamescom: Awesome Indies will return this August during the event.
As this long Summer Gaming Marathon begins, more events are bound to be revealed. We'll update this post as more companies announce their summer gaming showcases.
Editors' Recommendations
Fireteam Elite To Receive New Pathogen Story This August
Anthony Davis Officially Joins E-Sports Team
The Final Information to What to Watch on Prime Video, Netflix, HBO Max, Hulu, and Extra in January 2023
One of the best promoting video games of the week
Rejecting Web3 Gaming's 'Hellscape,' Unioverse Turns to 'Heroes' – Blockworks